Cristiano Ronaldo's Juventus crashed out of the Champions League in the last 16 for the second year running on Tuesday, losing to 10-man Porto on away goals despite winning the second leg 3-2 in Turin.
Sergio Oliveira's extra-time free-kick sent twice former winners Porto through to the quarter-finals as the tie finished 4-4 on aggregate.
Leading 2-1 from the first leg in Portugal, Oliveira's first-half penalty increased Porto's advantage but Juventus leveled the tie through two goals from Federico Chiesa, which came to either side of Porto striker Mehdi Taremi's red card.
Oliveira then rifled home a low free-kick on 115 minutes, which passed through the legs of Ronaldo, with Adrien Rabiot's header in reply coming in vain for Juventus.
"When you make four big errors over two legs in the Champions League last 16, you can get eliminated," said Juventus coach Andrea Pirlo.
"It will take a few days to wipe this game from our minds, but then we must play every game with the right attitude, realize we're still only in March, and have time to climb the Serie A table."
Juventus had been counting on Portuguese striker Ronaldo, the competition's record goalscorer, and in-form Spaniard Alvaro Morata, who had scored six goals in the competition this season, to pull them through.
But Juventus' Champions League heartache stretching back 25 years continued, falling in the first knockout round the second consecutive year after losing to French club Lyon last season.
"The work of the whole team was important to go through in a manner that was fully deserved," said veteran Porto defender Pepe.
"It's hard to explain by words the way we managed to react (playing with 10 men). Today we showed lots of character: the players were focused and that made it easy for us."
Pirlo, in his first season as Juventus coach, had regained several injured players including midfielder Arthur and defender Leonardo Bonucci, but captain Giorgio Chiellini remained on the bench with Danilo suspended.
Porto goalkeeper Agustin Marchesin produced a sharp early save to turn away a Morata header, while Taremi nodded against the crossbar at the other end in a lively start to the game.
The Italian champions fell behind on the night when Merih Demiral conceded a penalty after bundling over Taremi in the box, with Dutch referee Bjorn Kuipers pointing to the spot.
Oliveira made no mistake, sending Wojciech Szczesny the wrong way to give the visitors a 3-1 advantage overall.
Marchesin continued his heroics, the Argentine blocking from Morata on 26 minutes and Rabiot minutes later after the French midfielder took aim from distance.