10 man Porto progress to the next round of the Champions League on away goals despite losing 3-2 at Allianz Stadium to leave Juventus still searching for a first title since 1996.
Oliveira’s penalty fired the visitors in front in the first half, before Chiesa levelled the score four minutes after the restart.
The Dragons then went down to 10 men after Taremi was sent off for a second bookable offence, and Juventus capitalised with Chiesa heading the Old Lady in front on 63 minutes.
In extra-time, Oliveira’s long-range free-kick put Porto in front on aggregate, with Rabiot’s 117th-minute goal proving to be nothing more than a consolation.
Yet veteran defender Pepe inspired his side with a superb display.
Juan Cuadrado hit the bar for Juventus in stoppage time and then both sides missed chances in the extra 30 minutes before Oliveira’s 25-yard free-kick sneaked under the wall and beyond Wojciech Szczesny, leaving Juventus needing to score twice.
In a game that thrilled from first moment to last, Juventus should have taken the lead in the third minute when Cuadrado crossed for Alvaro Morata, only for goalkeeper Agustin Marchesin to pull off a fine save from the point-blank header.
Both sides pressed. Aaron Ramsey headed Cuadrado’s free-kick too high before Merih Demiral’s clumsy challenge on Taremi in the 17th minute handed Porto their spot-kick, and Oliveira sent Szczesny the wrong way to give the Portuguese giants the lead.
At this stage Juventus were wobbling and Jesus Corona should have done better than shoot straight at Szczesny when clean through.
Then Morata missed another excellent opportunity when he drilled another Cuadrado cross against Marchesin.
In stoppage time, Cuadrado nearly scored the winner his performance deserved but his left-foot curler cannoned back off the crossbar.
Porto continued to defend brilliantly in extra-time and had their reward when Szczesny could only get a hand to Oliveira’s low free-kick but could not keep it from creeping into the corner.
Rabiot’s header moments later was not enough to deny Sergio Conceicao’s team their celebrations.
Juventus will be looking to bounce back in their upcoming Serie A fixture against Cagliari.
Porto, who find out their Champions League quarter-final opponents on March 19th, host Pacos Ferreira next time out in the Primeira Liga.