Juventus crashed out of the Champions League at the last-16 stage as a defiant, 10-man Porto side beat them on away goals after extra-time to book their place in the quarter-finals.
Sergio Oliveira’s free-kick in extra-time, his second goal of the night, proved crucial as the Portuguese side hung on despite Adrien Rabiot’s immediate response and a late onslaught from Juve.
Porto held a 2-1 lead from the first leg and travelled to Turin desperate for an away goal, meaning their opponents would need to score twice to force the extra period.
And they were gifted the opportunity after just 18 minutes when Merih Demiral clattered into the back of Mehdi Taremi as he tried to turn and shoot inside the box.
The referee pointed to the spot and up stepped Oliveira to send Wojciech Szczesny the wrong way for his 16th goal of the campaign.
Cristiano Ronaldo was at the heart of Juve’s leveller after the break, collecting a ball over the top of the Porto defence and laying it off for Federico Chiesa to curl into the far corner.
Porto were then reduced to 10 men after Taremi was given two yellow cards in the space of three minutes, the second of which for kicking the ball away.
Chiesa hit the woodwork just moments later but he did make Juve’s numerical advantage count by heading Juan Cuadrado’s ball into the box past Agustin Marchesin for his second of the night.
The Serie A side thought they had won it in stoppage time as Alvaro Morata tucked the ball home, but the linesman’s flag was raised and replays showed him to be offside.
And Cuadrado then rattled the crossbar with a stunning effort just moments before the end of normal time.
It has been a hectic season so far – so make sure you don’t miss a single thing by signing up for the brilliant new Mirror Football newsletter!
All the latest transfer news and big stories will land straight into your inbox. You won’t miss out.
To sign up, put your email at the top of this article or follow the instructions on this link.
Oliveira struck a free-kick under the wall in extra-time and past Szczesny, with Ronaldo turning his back and the ball going through his legs before reaching the goalkeeper.
Rabiot responded almost immediately with a header but Juve couldn’t score again and crashed out in dramatic circumstances.
It means there will be no sixth Champions League crown for Ronaldo to add to his collection this season.
Juve hoped by signing the Portuguese superstar they would join the winners’ circle on the continent, but their wait for a first Champions League since 1996 goes on.
Elsewhere, Erling Haaland’s reputation as one of the most-feared marksmen in Europe grew yet further as he fired Borussia Dortmund into the last eight against Sevilla.
The Norwegian struck twice to reach the 20-goal mark in the Champions League after just 14 games – a full 10 matches quicker than Harry Kane who had previously been the fastest to the milestone.
With the Bundesliga side 3-2 up against their Spanish opponents after the first leg, Haaland gave them a two-goal cushion in the 35th minute as he converted a pull-back from Marco Reus.
He doubled his tally in bizarre fashion nine minutes into the second half after seeing an initial strike ruled out for a foul on Sevilla defender Fernando.
But VAR adjudged Haaland had himself been fouled earlier in the move and awarded a penalty to Dortmund.
The Dortmund striker saw his spot-kick saved but a re-take was ordered because the goalkeeper was off his line, and Haaland snapped up the second opportunity.
Sevilla gave themselves a glimmer of hope after former Liverpool midfielder Emre Can shoved over Luuk de Jong in the box and Youssef En-Nesyri scored from 12 yards off the underside of the crossbar.
And En-Nesyri headed a second in the sixth minute of stoppage time from Ivan Rakitic’s cross to threaten something miraculous, but it was too little, too late for the Spanish side who crashed out 5-4 on aggregate.