Match ends, Juventus 2, Lyon 1.
Lyon survived a Cristiano Ronaldo-inspired comeback from Juventus to hang on and book a Champions League quarter-final against Manchester City.
Leading 1-0 from February's first leg, the French side were handed a soft early penalty which Memphis Depay converted in style.
That left Juve needing to score three times to progress and Ronaldo got one back from the penalty spot.
He then thundered in his 130th Champions League goal but Lyon held on.
Lyon boss Rudi Garcia, said: "We came up against an opponent who has an extraterrestrial in its squad," of five-time Ballon d'Or winner Ronaldo.
"This is the victory of a group. We wanted to be in the final eight in Lisbon, we are there.
"We'll still be outsiders and that suits us very well."
Juventus manager Maurizio Sarri may have guided his side to a ninth straight Serie A title but they were lethargic throughout and his position could be under threat.
Juve have not won the Champions League since 1996 and the wait goes on at least another year.
Uninspiring Old Lady
To question Sarri after one year in charge may seem harsh, but the reality is that in Turin - as in Paris and in Munich - winning the league is the minimum requirement.
Ending that now 25-year drought in the Champions League is the goal and were it not for Ronaldo, Juve offered next to nothing as an attacking force.
Six of Sarri's starting XI are in their 30s and they were painfully slow in approach at times, showing why they had only actually won two of their last eight games in Serie A.
Where there is the remarkable Ronaldo there is hope, and his second on the night was a superb, swerving left-footed shot from range that gave hope of another tilt at the business end of the competition.
But when Ronaldo headed a corner over the top, that hope was extinguished.
Ronaldo could yet win the trophy with a third team, joining Clarence Seedorf in an exclusive club, but time is running out for the 35-year-old. As it may be now for Sarri, too.
"I don't think directors of a top level will make a decision based on one match," Sarri said after the match.
"They are going to evaluate the whole season.
"I find this kind of question [about his future] offensive, but not towards me, it's offensive towards the directors. I have a contract, I'll respect it and I don't expect anything."
'They have an alien'
Lyon were only seventh in the French top flight when the season was cancelled in April and this was just their second game back.
They held Paris St-Germain to a 0-0 draw in the French League Cup final last Friday night - losing on penalties - and were equally resolute in Turin.
Referee Felix Zwayer helped them out with a gift of a penalty as Houssem Aouar went down after a drive into the area, with Rodrigo Bentancur clearly winning the ball.
Depay converted with a fine Panenka chip, and Lyon always looked likely to see the tie out even after Ronaldo's double.
Depay was harshly adjudged to have handled while blocking a free-kick in the wall to give Juve a way back in and it would have been easy to cave.
But Aouar, Bruno Guimaraes and Maxence Caqueret all excelled in midfield as Lyon booked a one-off tie against City in Lisbon next Saturday night.
"It is the victory of a group. We wanted to be in Lisbon. Here we are," said Lyon boss Rudi Garcia.
"I have been here a few times with Roma. Juventus are the best club in Italy, a team that wanted to win the Champions League and have an alien.
"We saw Ronaldo's magnificent second goal. Few people thought we could do it. We did it."
Man of the match - Houssem Aouar (Lyon)
Best run in a decade
- Lyon are the first French side to reach the quarter-finals of the Champions League since Monaco in 2016-17, while this is the first time they have reached this stage of the competition since 2009-10.
- Juventus have failed to reach the quarter-finals of the Champions League for the first time since 2015-16 under Massimiliano Allegri.
- Despite progressing on away goals, Lyon are now winless in their last 11 away knockout matches in the Champions League (D2 L9).
- Juventus have played more Champions League home games against French sides without defeat (7) than against teams from any other nation.
- Lyon's Memphis Depay has become just the second Dutch player to score in six successive Champions League appearances after Ruud van Nistelrooy (twice).
- Juventus' Cristiano Ronaldo is just the third player to score a Champions League goal against a specific opponent with three different clubs, after Jorg Butt against Juventus and Ruud van Nistelrooy against Bayern Munich.
- Juventus forward Cristiano Ronaldo has scored 20 goals in his last 13 home Champions League knockout matches. In total, he has scored 67 goals in the knockout stages of the competition, 21 more than any other player (Messi, 46).
- 16Ju CuadradoBooked at 31minsSubstituted forDaniloat 70'minutes
- 4de Ligt
- 12Lobo Silva
- 33BernardeschiSubstituted forDybalaat 71'minutesSubstituted forOlivieriat 84'minutes
- 30BentancurBooked at 44mins
- 5PjanicSubstituted forRamseyat 60'minutes
- 7Cristiano Ronaldo
- 1LopesBooked at 76mins
- 5DenayerSubstituted forAndersenat 61'minutes
- 6Guedes Filho
- 20MarçalBooked at 89mins
- 14DuboisBooked at 38minsSubstituted forTeteat 90+1'minutes
- 25CaqueretBooked at 87mins
- 39Guimarães Rodriguez Moura
- 8AouarBooked at 19minsSubstituted forMendes Ribeiroat 90+1'minutes
- 27CornetBooked at 79mins
- 11DepayBooked at 42minsSubstituted forDembeleat 67'minutes
- 21Toko EkambiSubstituted forReine-Adélaïdeat 67'minutes
- 4Pereira da Silva
- 12Mendes Ribeiro
- 22de Souza Oliveira
- Felix Zwayer
- Shots on Target
Second Half ends, Juventus 2, Lyon 1.
Foul by Matthijs de Ligt (Juventus).
Marçal (Lyon) wins a free kick in the defensive half.
Foul by Marco Olivieri (Juventus).
Thiago Mendes (Lyon) wins a free kick in the defensive half.
Corner, Juventus. Conceded by Marcelo.
Attempt blocked. Cristiano Ronaldo (Juventus) right footed shot from outside the box is blocked.
Gonzalo Higuaín (Juventus) wins a free kick in the attacking half.
Foul by Marcelo (Lyon).
Substitution, Lyon. Thiago Mendes replaces Houssem Aouar.
Substitution, Lyon. Kenny Tete replaces Léo Dubois.
Marçal (Lyon) is shown the yellow card for a bad foul.
Danilo (Juventus) wins a free kick in the attacking half.
Foul by Marçal (Lyon).
Maxence Caqueret (Lyon) is shown the yellow card for a bad foul.
Adrien Rabiot (Juventus) wins a free kick in the defensive half.
Foul by Maxence Caqueret (Lyon).
Foul by Leonardo Bonucci (Juventus).
Marçal (Lyon) wins a free kick in the defensive half.
- How would you cope without electricity?: Take the Power Out quiz to find out
- Young shielders: Stories of young people in isolation