The Eagles levelled the tie when Eduardo Salvio headed home just 16 minutes into the game at the Estadio da Luz but the hosts were reduced to 10 men shortly before the half-hour mark when Guilherme Siqueira was booked twice in the space of three minutes.
Porto made the most of its numerical advantage, with Silvestre Varela finishing with aplomb after a fine surge through the Benfica defense.
However, the Primeira Liga leader responded wonderfully well to that setback, reclaiming the lead on the night when Enzo Perez converted from 12 yards out. Pedro Proenca’s decision to award Benfica a penalty for minimal contact from Diego Reyes on Salvio enraged the visitors.
Andre Gomes then put Benfica ahead on aggregate with a stunning strike 10 minutes from time, with the midfielder controlling the ball and then flicking it past his marker in one fluid movement before then firing past Fabiano.
It was a goal that proved the catalyst for a chaotic end to the game during which Benfica boss Jorge Jesus and Porto counterpart Luis Garcia were both sent to the stands, before Ricardo Quaresma picked up a second yellow card in mystifying circumstances as the visitors also ended with 10 men on the pitch.
Benfica, which will face Rio Ave in the final, can now win the Portuguese title by defeating Olhanense this weekend.