Goals from João Moreira and Carlos Saleiro kept the hosts' Group 3 play-off hopes alive in Guimaraes. Bulgaria had beaten Portugal 1-0 in the reverse fixture in October, and Rui Caçador's side had a hard time again on home soil, finally breaking the deadlock with two goals in three second-half minutes.
Portugal almost took the lead after 21 minutes as João Moreira's overhead kick drew a suitably spectacular save from Nikolay Mihaylov, and while the hosts kept up the pressure, they were made to sweat as Nikolay Dimitrov's 51st-minute effort flew just wide. Nerves were jangling before Mihaylov spilled Manuel Fernandes' 65th-minute free-kick allowing João Moreira to hit the loose ball through the goalkeeper's legs.
Three minutes later, it was all over for the visitors as Paulo Machado's long pass picked out Carlos Saleiro and the 22-year-old substitute scored with a low shot. The result leaves Portugal six points adrift of section leaders England, but with a game in hand. The top two meet in England in what may prove to be a decisive game in September.