Juan Cuadrado snatched victory for 10-men Juventus with the only goal in Lyon but the Italians had inspirational goalkeeper Gianluigi Buffon to thank for keeping them top of Group H.
Cuadrado, a 68th-minute replacement for Paulo Dybala, squeezed home the decisive goal from a tight angle in the 76th minute, while Juventus skipper Buffon made a string of superb saves in either half to keep Lyon at bay.
Lyon striker Alexandre Lacazette saw his first-half penalty saved by the Italy international before Juve played most of the second half with 10 men following midfielder Mario Lemina's dismissal.
Juve, 4-0 winners in Zagreb in their last Group H match after being held to a goalless home draw by Sevilla in their opener, lead the Spanish club on goal difference after three group matches.
The Italian champions, on course for a sixth straight domestic crown after losing only one of their first eight Serie A matches this season, made the more assured start and Leonardo Bonucci's early shot was blocked.
But Lyon, who beat Dinamo Zagreb 3-0 before losing 1-0 in Sevilla in their first two Group H matches, soon settled and threatened through headers from defenders Mouctar Diakhaby and Rafael.
Visiting striker Gonzalo Higuain served warning in the 24th minute after being played in by Paulo Dybala with a low angled shot that was well saved by Lyon goalkeeper Anthony Lopes in the bottom corner.
Lyon midfielder Sergi Darder flashed a shot just wide at the other end as both sides strove to break the deadlock, but the French club spurned a golden chance to take the lead in the 35th minute when Lacazette's penalty was saved.
Bonucci fouled Diakhaby in the area and was booked, but Lacazette's spot-kick lacked power and Buffon got down to save in the bottom corner.
Higuain forced Lopes into a better save just before the break with a header from Dani Alves' cross and Bonucci headed inches wide, this time from Dani Alves' corner, in first-half stoppage time.
Buffon pulled off a superb save to keep out Nabil Fekir's deflected shot early in the second period before Juve were reduced to 10 men.
Lemina had already been booked for a foul on Maxime Gonalons in the first period and when he clattered the Lyon skipper from behind in the 54th minute, he was shown a second yellow card.
Fekir was instrumental again when his cross was met by Lyon defender Corentin Tolisso's header, but Buffon rescued his side again with another sprawling save before Juve made the breakthrough.
Dani Alves played in Cuadrado wide on the right side of the area and the Colombia international arrowed home inside Lopes' near post.
Lyon poured men forward in search of a late equaliser but were thwarted again by Buffon, who turned away Gonalons' goalbound effort.
Rachid Ghezzal went close to a dramatic equaliser deep in stoppage time, but the substitute dragged his low shot wide after being set up by Gonalons.