Ton up for Ronaldo as Real win at Lyon
They have not conceded in racking up 12 points and 10 goals.
Lyon, who were without key players Lisandro Lopez and Michel Bastos, lie third on four points and in danger of not qualifying after they struggled to create clear chances in a one-sided game at Stade de Gerland.
Real always looked on top against a seemingly harmless Lyon team, who only came close in the 67th minute when Ederson had a couple of shots parried by Iker Casillas.
Ronaldo's 25-metre strike was blocked by Hugo Lloris as Real got off to a lively start in a packed arena.
The France keeper also pulled a great save to deny Karim Benzema on 10 minutes after the former Lyon striker was nicely set up by Mesut Ozil's through pass.
The visitors, however, were rewarded in the 24th minute when Ronaldo beat Lloris with an explosive 20-metre free-kick, scoring Real's 900th European goal.
Lyon, overrun in the midfield, struggled to get near Real's penalty area and were too shy when they managed to.
They had a chance on the stroke of half-time when Yoann Gourcuff unleashed a rising shot that was tipped over the bar by Iker Casillas.
Real, however, were in a class of their own and moved 2-0 ahead when Ronaldo netted his 100th goal for Real from the spot in the 69th minute after the Portugal forward had crashed into Mouhamadou Dabo in the box.
Lyon came close to reducing the arrears 13 minutes from time but Jimmy Briand's header from a Gourcuff corner crashed onto the bar as Lyon, formally Real's bogey side, suffered their first home defeat by a Spanish team in 10 years.
Real had beaten Lyon 4-0 in the Bernabeu last time.