Ten-man Porto produced a heroic display to seal their spot in the Champions League quarter-finals on away goals and leave Juventus still searching for a first title since 1996.

This week Juve chairman Andrea Agnelli expressed confidence that his plans to revamp the competition from 2024 would be rubber-stamped, but he can apparently do nothing about building a team capable of actually winning the thing. Even signing Cristiano Ronaldo, the serial winner, has not been enough.

Porto took a first-half lead through Sergio Oliveira’s penalty but looked to be heading out when Federico Chiesa’s double took the tie to extra-time, either side of a red card for Porto striker Mehdi Taremi for kicking the ball away.

Porto produced a sensational display to knock Juventus out of the Champions League after extra-time on Tuesday night

Porto midfielder Sergio Oliveira scored in 115th minute with a long-range free-kick to give them an all-important away goal

Porto midfielder Sergio Oliveira scored in 115th minute with a long-range free-kick to give them an all-important away goal

Oliveira tried his luck from far out and the low effort went underneath the Juventus wall and into the bottom corner

Oliveira tried his luck from far out and the low effort went underneath the Juventus wall and into the bottom corner 

Juventus and Portugal star Cristiano Ronaldo looks dejected after Porto scored their second goal of the night in extra time

Juventus and Portugal star Cristiano Ronaldo looks dejected after Porto scored their second goal of the night in extra time

Juventus goalkeeper Wojciech Szczesny got a hand to Oliveira's audacious set-piece but he could not keep out the shot

Juventus goalkeeper Wojciech Szczesny got a hand to Oliveira’s audacious set-piece but he could not keep out the shot

Ronaldo could not hide his disappointment after Juventus crashed out of the Champions League on away goals on Tuesday

Ronaldo could not hide his disappointment after Juventus crashed out of the Champions League on away goals on Tuesday

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. Adrien Rabiot pulled one back but it was not enough.

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.

At the other end, Taremi’s close-range effort was blocked by Leonardo Bonucci and the Iranian forward headed the rebound against the bar.

Federico Chiesa scored two for Juventus - the second was a header at the back post - to send the game into extra time

Federico Chiesa scored two for Juventus – the second was a header at the back post – to send the game into extra time

Chiesa celebrates after scoring his and Juventus' second goal in the 63rd minute of the Champions League last-16 clash

Chiesa celebrates after scoring his and Juventus’ second goal in the 63rd minute of the Champions League last-16 clash

Chiesa, who scored Juventus' goal in the first leg, side footed the ball into top corner shortly after break for Juve's opener

Chiesa, who scored Juventus’ goal in the first leg, side footed the ball into top corner shortly after break for Juve’s opener

Porto's Mehdi Taremi was sent off for two bookings in quick succession in between Chiesa's first and second goals

Porto’s Mehdi Taremi was sent off for two bookings in quick succession in between Chiesa’s first and second goals

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.

At half-time it was hard to see a way back for Juventus yet everything changed in the first 10 minutes of the second half.

Porto's  Oliveira (left) celebrates after scoring a penalty in the first half of the Champions league last-16 second leg tie

Porto’s  Oliveira (left) celebrates after scoring a penalty in the first half of the Champions league last-16 second leg tie

Oliveira sent Szczesny the wrong way from the spot to put Porto in a commanding position in the last-16 encounter

Oliveira sent Szczesny the wrong way from the spot to put Porto in a commanding position in the last-16 encounter

Porto's Oliveira celebrates with Otavio (right) after scoring opening goal of the night and putting them 3-1 up on aggregate

Porto’s Oliveira celebrates with Otavio (right) after scoring opening goal of the night and putting them 3-1 up on aggregate

Oliveira is surrounded by his Porto team-mates after netting a crucial goal away from home against Juventus in Europe

Oliveira is surrounded by his Porto team-mates after netting a crucial goal away from home against Juventus in Europe

First Chiesa produced a fine finish into the top corner after collecting Ronaldo’s lay-off. Five minutes later Taremi collected a second booking when he hammered the ball towards the Juventus goal in an attempt to waste time after he had been flagged offside.

Juve took heart and only a brilliant sliding challenge from veteran defender Pepe denied Chiesa, with the ball striking the post. Yet Chiesa was not to be thwarted and his far post header levelled the tie on aggregate following another splendid Cuadrado delivery.

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 striker Alvaro Morata had a good opportunity to score early on in the match but his header was met with a fine save

Juventus striker Alvaro Morata had a good opportunity to score early on in the match but his header was met with a fine save

Porto goalkeeper Agustin Marchesin put in an excellent display and denied Morata from a tight angle in the first half

Porto goalkeeper Agustin Marchesin put in an excellent display and denied Morata from a tight angle in the first half

Marchesin put in a strong tackle on Ronaldo in the penalty area late on in the match but the goalkeeper won the ball first

Marchesin put in a strong tackle on Ronaldo in the penalty area late on in the match but the goalkeeper won the ball first

Juventus midfielder Adrien Rabiot pulled a goal back in extra time but they needed one more due to the away goals rule

Juventus midfielder Adrien Rabiot pulled a goal back in extra time but they needed one more due to the away goals rule 

Relive the action as it happened with Sportsmail…