Pedro Proenca, Portugal’s World Cup referee, struggled to control a game full of niggly exchanges, scuffles, protests and theatrics.
Both red cards appeared harsh as did the penalty which put Benfica 2-1 ahead just as Porto were threatening to take control of the game.
Benfica coach Jorge Jesus ended up watching the match in the crowd while Porto’s Ricardo Quaresma, apparently too shocked to protest his red card, simply shook the referee’s hand and walked off.
The defeat continued a bitter season for Porto who have already lost their league crown, fell at the group stage in the Champions League and were knocked out of the Europa League last week.
Benfica, trailing 1-0 from the first leg, levelled the aggregate scores when Eduardo Salvio’s far post header found its way between Porto goalkeeper Fabiano and the near post in the 16th minute.
The Eagles, starting with nine South Americans, were in control until full back Guilherme Siqueira was booked twice in three minutes, the first very harshly, and sent off just before the half hour.
Benfica retreated and Porto levelled seven minutes after halftime with an individual goal by Portugal winger Silvestre Varela who burst through the defence and slotted his shot between Artur’s legs.
There was another twist in the 59th minute when Salvio went down under minimal contact from Diego Reyes and Enzo Perez slotted in the penalty to put Benfica back in front.
Benfica still needed another goal and Gomes provided it in style when he controlled the ball on his chest with his back to goal, turned and flicked it past his marker in one movement and fired his shot between Fabiano and the near post.
Several fans ran on to the pitch as the stadium erupted and Gomes was booked for a shirtless celebration.
The game degenerated and Jesus was ordered from the touchline for entering the field to rant at match officials. He stepped into the crowd behind the team bench, watched the game from there and was mobbed at the end.
Counterpart Luis Castro was dismissed three minutes later although it was not clear why, then Quaresma was sent off for a second yellow card although he did little more than point out to the referee that he had been elbowed twice in the face.
Benfica, who will clinch the league title if they beat Olhanense on Sunday, will meet Rio Ave in the final after the side from Vila do Conde beat Braga 2-0 for a 2-0 aggregate win.
Ukra and Ruben Ribeiro scored in each half to sent Rio Ave into only their second final and the first since 1984.
(Reporting By Brian Homewood, editing by Ed Osmond)