Lucas Tousart's well-taken goal was the difference as the Italian champions faltered in France.
Article top media content
Rudi Garcia's vibrant side will take a lead to Turin thanks to Lucas Tousart's first-half strike.
The match at a glance
Cristiano Ronaldo went close for Juventus early on but the remainder of the first half was dominated by the home team. Lyon gave warning of their goal threat when Karl Toko Ekambi's header from Houssem Aouar's corner struck the bar and they moved deservedly in front in the 31st minute when Lucas Tousart expertly guided in another Aouar cross.
Maurizio Sarri's men asked more questions of the Lyon defence after the break and Paulo Dybala should have levelled when he miscued past the near post from a low Alex Sandro centre. Substitute Gonzalo Higuaín also fired wide as Juventus mustered just one shot on target all evening.
Man of the Match: Houssem Aouar (Lyon)
Willi Ruttensteiner, UEFA technical observer: "His intelligence and technique under pressure and his assist for the decisive goal – not to mention his defensive work for the good of the team – make him a worthy choice as Man of the Match."
View from the stadium: David Crossan, Lyon reporter
Lyon can be very proud of themselves as this was the greatest UEFA Champions League performance they have managed since this stadium opened in early 2016. Garcia's tactical plan worked as Lyon bossed the midfield in the first half and were rewarded with a goal. Juventus will still go into the second leg as favourites but OL are capable of scoring in Turin.
Visitors' view: Paolo Menicucci, Juventus reporter
Juventus had more attempts, more possession and more passes completed but it is hard to say that Lyon's win was not fully deserved. The hosts were far better in the first half and their defensive heroics allowed them to resist Juve's late pressure. Sarri will have to work out what went wrong in the opening period when his side had a wrong approach to the game. Playing well for just one half might not be enough in Turin.
Leonardo Bonucci, Juventus defender: "We were second to every ball in the first half – I don't know why. Something went wrong with our approach, I could sense from before kick-off that something was not switched on. We were all too far from each other in the first half, making everything easy for Lyon. We need to work hard ahead of the return leg because we cannot afford another game like this in Turin."
Houssem Aouar, Lyon midfielder: "We always thought we were capable of unsettling Juventus and we did just that with a lot of desire. I'm very happy to have been given this man of the match trophy and to have set up the winning goal. I don't know if it was the best Champions League night at this ground as you'd have to ask the supporters. Our tactics worked and now we have to put the same effort into the second leg."
- Lucas Tousart's only previous UEFA Champions League goal was scored against Barcelona in last season's round of 16.
- This was the first time Juventus had been behind in a UEFA Champions League away game since their 2-0 defeat at Atlético Madrid in last season's round of 16 first leg.
- Lyon had won only two of their last 14 UEFA Champions League home matches before this game.
- Juventus failed to score for just the second time in their last 18 UEFA Champions League matches.
- This is only Lyon's second success in their last ten meetings with Italian sides, home and away (D2 L6).
Lyon: Lopes; Denayer, Marcelo, Marçal; Dubois (Tete 78), Bruno Guimarães, Tousart, Aouar, Cornet (Andersen 81); Ekambi (Terrier 66), Dembélé
Juventus: Szczęsny; Danilo, Bonucci, De Ligt, Alex Sandro; Rabiot (Bernardeschi 78), Pjanić (Ramsey 61), Bentancur; Cuadrado (Higuaín 70), Ronaldo, Dybala