Roma was reduced to nine men by the 50th minute and goes crashing out of the Champions League prior to the group stage.
Porto stunned Roma 3-0 in the second leg of their Champions League playoff in Rome to advance to the group stage of the competition on a 4-1 aggregate and send the Serie A side crashing into the second-tier Europa League group stage instead.
Roma, which was reduced to 10 men in the 39th minute when Daniele De Rossi was sent off for stomping on Maxi Pereira and then down to nine men in the 50th when Emerson suffered the same fate, had high hopes of reaching the Champions League group stage after taking a slight away-goal edge from the 1-1 draw in the opening leg.
That advantage evaporated early, as Felipe, whose own goal gifted Roma that edge, headed home off a free kick in the eight minute.
With Roma chasing the game and combating a two-man disadvantage, Porto struck for the dagger. Mexico international Miguel Layun rounded an onrushing Wojciech Szczesny and fired into an empty net to give Porto a 3-1 lead in the 73rd minute and make Roma need three goals.
That number increased to four a couple minutes later, after another Mexico star, Jesus "Tecatito" Corona, fired home Porto's fourth.
Porto awaits Thursday's Champions League draw, which will determine its fate for the next stage.
In Tuesday's other four Champions League playoff second legs:
Monaco 1-0 Villarreal (Monaco through on a 3-1 aggregate)
Viktoria Plzen 2-2 Ludogorets (Ludogorets through on a 4-2 aggregate)
Legia Warsaw 1-1 Dundalk (Legia Warsaw through on a 3-1 aggregate)
Hapoel Be'er Sheva 2-0 Celtic (Celtic through on a 5-4 aggregate)