Porto advanced to the quarter-finals of the Champions League in dramatic fashion after beating Roma 3-1 in the second leg of their last-16 tie to advance 4-3 on aggregate.
Trailing 2-1 from the first leg, Porto edged ahead on away goals when Tiquinho scored in the 26th minute.
Daniele de Rossi replied from the penalty spot before half-time, only for Moussa Marega to level the tie in the 52nd minute.
Eden Dzeko spurned two fantastic chances to snatch victory in extra-time before Alex Telles scored a 116th-minute penalty following a Video Assistant Referee intervention.
It is the first time that Porto have advanced from a two-legged tie in the Champions League after losing the first leg since 1986-87, and they join Manchester United, Tottenham and Ajax in the last eight.
Porto made a fast start as Jesus Corona volleyed over the bar from 20 yards out and then Telles fired into the side-netting from inside the box.
The hosts took the lead in the 26th minute when they won the ball in Roma half and quickly broke, with Moussa Marega playing across the six-yard box for Tiquinho to tap in from close range.
But Roma levelled when Eder Militao tripped Diego Perotti in the box and De Rossi converted the penalty.
Porto pressed after half-time and, after Tiquinho headed over from 10 yards out, the hosts made it 2-1 when Jesus Corona crossed to the back post for Marega to score from close range.
Porto controlled the game in the second half but struggled to fashion any more clear openings.
Substitute Yacine Brahimi saw a volley saved while Dzeko dragged wide at the other end.
Roma looked to be tiring, but Dzeko spurned the best chances in extra-time, blazing over the bar from an excellent position and then chipping over Iker Casillas, only for Pepe to slide and clear off the line.
Porto scored the winner shortly afterwards as Alessandro Florenzi was penalised for a tug on Fernando's shirt in the box.
The decision was reviewed by VAR and, after the referee pointed to the spot, Telles stepped up and converted to send Porto into the last eight.
Opta stats
- Porto have advanced from a two-legged tie in the European Cup/Champions League after losing the first leg for the first time since 1986-87, when they beat FC Vítkovice in the Last 16 of the European Cup (3-1 on aggregate).
- Roma have lost each of their last eight Champions League knockout games away from home.
- Alex Telles' penalty for Porto (116:09) was the latest to be scored in a Champions League match since Cristiano Ronaldo v Atletico Madrid in the 2014 final (119:52).
- Porto striker Moussa Marega became just the second African player to score in six consecutive Champions League appearances, after Marouane Chamakh in October 2010.
- Moussa Marega has netted six goals in the Champions League this season; the most by a Porto player in a single campaign since Jackson Martínez in 2014-15 (7).
- Tiquinho's opener was Porto's 250th goal in the Champions League, making them the eighth team in competition history to reach this milestone.
- Daniele De Rossi became Roma's second-oldest scorer in the Champions League (35y 225d), after Francesco Totti in November 2014 (38y 59d v CSKA Moscow).
- Roma have conceded in each of their last 31 away games in the Champions League - the longest streak in competition history.
- Kostas Manolas made his 200th appearance for Roma in this game, while only three players have made more Champions League appearances for the club (32 - only behind Daniele de Rossi, Francesco Totti and Christian Panucci).
Man of the match - Moussa Marega
The powerful striker produced a brilliant all-round display, hustling and harrying the Roma defence and chasing the ball around the pitch to help his team. As other players appeared to be running out of steam, Marega kept going and played a key role in Porto's victory.
What's next?
The draw for the quarter-finals takes place on Friday, March 15.
Porto travel to Feirense Sunday, March 10 while Roma host Empoli on Monday, March 11.