Juventus 3-2 FC Porto (4-4 on aggregate)
Juventus crashed out of the UEFA Champions League last 16 for a second successive season as FC Porto advanced on the away goals rule.
Leonardo Bonucci, Federico Bernardeschi and Arthur Melo returned to the Juventus line-up while Danilo missed out through suspension.
After losing the first leg 2-1, Juventus got off to a poor start in the second leg as Porto's Sergio Oliveira opened the scoring on 19 minutes from the penalty spot after Merih Demiral's foul on Moussa Marega.
Juventus got their equaliser four minutes after the halftime break when Ronaldo turned provider to pick out Federico Chiesa, who sent a curling effort into the top corner.
Things turned sour for Porto on 54 minutes when Mehdi Taremi was sent off after picking up two yellow cards in quick succession, before Chiesa levelled matters on aggregate by making it 2-1 on the night in the 65th minute.
Juve nearly got the third goal in the latter stages but Chiesa cracked the crossbar before Juan Cuadrado saw his strike cannon off the woodwork in stoppage time, sending the game to extra-time.
Porto got the next goal on 115 minutes when Oliveira found the back of the net with a free-kick that snuck in despite Wojciech Szczesny getting a hand to the shot.
While Adrien Rabiot did pull another goal for Juve to make it 4-4 on aggregate two minutes later, Porto were able to hold out in the remaining stages to advance on the away goals rule.
Borussia Dortmund 2-2 Sevilla (5-4 on aggregate)
Borussia Dortmund progressed to the quarter-finals with a 2-2 draw against Sevilla in the second leg on Tuesday evening.
Jadon Sancho, Gio Reyna and Raphael Guerreiro were once again out for Dortmund after the missing the loss to Bayern Munich over the weekend as Erling Haaland was joined in the attack by Marco Reus and Thorgan Hazard.
The Spaniards looked lively in the early stages as they aimed to overturn the 3-2 first-leg loss, as Suso sent a powerful strike inches wide of the upright on 20 minutes.
Haaland played a major role in the first leg after netting twice, so it was no Suprise that he was on the scoresheet once again this time around. The Norwegian opened the scoring on the night and made it 4-2 on aggregate in the 35th minute with a close-range finish into an empty net after a cut back from Reus.
There was a bit of Video Assistant Referee (VAR) drama after the break when Haaland had a goal disallowed only for the referee to award a penalty instead.
Haaland saw his spot-kick saved by Yassine Bounou, but the referee ordered a retake after the Sevilla shot-stopper was off his line which allowed the Dortmund strike to score with the retake.
Sevilla were awarded a penalty of their own on 68 minutes when Emre Can was judged to have brought down Luuk de Jong, allowing Youssef En-Nesyri to slot home to make it 2-1 on the night and 5-3 on aggregate.
En-Nesyri pulled another goal back in the sixth minute of time added on with a powerful header, but they could not find another goal as Dortmund advance to the last eight.
Click through the gallery to view the highest-paid stars in the Champions League: