Braga continued their fine season and inflicted a potentially mortal blow to FC Porto's title chances with a 3-1 win at the AXA on Sunday night.
Braga took the lead on 70 minutes through Hassan, but the Dragons looked like they would come away with a point when Maxi Pereira equalised with five minutes remaining.
However, Rafa and Alan scored late goals to give the hosts a deserved victory as Porto once again paid the price for defensive mistakes.
After Benfica had beaten Sporting in the Lisbon derby the night before, Porto went into the match knowing a win would take them to within three points of top spot.
And José Peseiro's side started strongly, with Suk's cross-shot well saved by Marafona. In the 23rd minute the lively Suk won a free kick in a dangerous position on the edge of the box, and Brahimi's effort beat the Braga goalkeeper but not the post.
Braga gradually began to get a foothold in the match, the ever dangerous Rafa sending a shot narrowly over the bar. The Arsenalistas were desperately close to breaking the deadlock in the 33rd minute as a well-worked move sent Hassan through on goal. The Egyptian striker lifted the ball over Casillas but it bounced back into play off the post, and only last-ditch defending prevented the two follow-up efforts from finding the net.
Hassan makes the breakthrough
The second half continued to be a well-balanced affair before the game exploded into life with 20 minutes left. Porto centre-back Marcano made a mess of cutting out a cross by Braga left-back Djavan, leaving Hassan with a simple chance that he did not waste to give Braga the lead.
Rafa was then unlucky not to double Porto's advantage as he sped clear and rattled the post with his cross-shot.
Porto refused to give up and were on level terms in the 85th minute as Braga's offside trap went badly wrong leaving Herrera free close in on goal. The Mexican's shot was kept out by Braga centre-back Boly, but the ball looped up for Maxi Pereira to head in the equaliser.
Porto's players immediately ran to fetch the ball out of the net as they chased a late winner, but it was Braga who retook the lead when Rafa slid in to tuck a shot past Casillas from another excellent Djavan cross.
Porto crumble
The visitors then fell apart with Martins Indi picking up a red card after a clumsy challenge that left the referee with no option but to brandish a second yellow. In stoppage time Casillas had a rush of blood to the head as he raced miles out of goal, with veteran Braga winger Alan cleverly taking advantage to dribble past him and knock the ball into the empty net from 40 yards.
Braga go into their Europa League tie against Fenerbahçe with confidence sky high after a run of 15 unbeaten matches, while Porto must now rely of Benfica and Sporting dropping points to get back into the title race.
by Tom Kundert
Video highlights of match
