An out-of-sorts Manchester City were deservedly beaten as Lyon began their Champions League campaign with a superb win at the Etihad Stadium.
City lacked their usual fluency going forwards and looked vulnerable defensively, allowing Lyon to take the lead when Nabil Fekir's cross was misjudged by Fabian Delph and Maxwel Cornet pounced with a smart finish.
Things went from bad to worse for the Premier League champions before half time as Fernandinho gave the ball away in midfield and Fekir drove at the defence before firing in past an unsighted Ederson.
A mazy run from substitute Leroy Sane allowed Bernardo Silva to reduce the deficit midway through the second half, but the expected onslaught never came and Lyon held on comfortably for a famous win.
Key Talking Point
Manchester City broke all records to win the Premier League last season but often looked disjointed in Europe, losing to Shakhtar Donetsk and Basel before Liverpool demolished them in the quarter finals.
With Shakhtar and Hoffenheim to come, City should be able to get their act together to qualify for the last 16. But if they are to compete with Europe's best, they must work out how to adapt their style for the continental game.
Starting XI: Ederson (6); Walker (5), Stones (5), Laporte (5), Delph (4); Gundogan (6), Fernandinho (4), David Silva (7); Bernardo Silva (6), Gabriel Jesus (5), Sterling (5)
Substitutes: Sane (7), Aguero (6), Mahrez (6)
STAR MAN - Leroy Sane
City were going nowhere until they introduced Leroy Sane early in the second half. The German was on the pitch for just over 10 minutes before he dazzled the Lyon defence with his tricky footwork and set up Bernardo Silva to halve the deficit.
He couldn't help City to find an equaliser, but he did provide a bit more driving force and Guardiola will surely consider starting him in City's next group game against Hoffenheim.
WORST PLAYER - Fernandinho
There were no shortage of contenders for this dubious honour. Raheem Sterling was very wasteful up front, while Fabian Delph made the error that allowed Cornet to break the deadlock.
However, Delph's mistake was simply the final act in a comedy of errors. It was Fernandinho who had given the ball away in midfield at the start of the move, and the Brazilian again surrendered possession to Fekir for the second goal.
Fernandinho has had a tough start to the season and fans on Twitter were left wondering if he could be the weak link that costs Manchester City this year.
Can't believe City didn't replace Fernandinho in the summer— Un Prophète (@mediocentr0) September 19, 2018
City are going to regret not signing a DM this summer Fernandinho is declining faster than the icebergs in the north pole are melting— 'deji (@bobskino) September 19, 2018
Fernandinho looks gone in the game no wonder pep wanted Jorginho— Luke Smith 🤫 (@Lukesmithh_) September 19, 2018
Key Talking Point
This was a baptism of fire for Lyon on their return to the Champions League after a year away. If you had asked the travelling supporters before the game, they probably would have taken a narrow defeat and a good performance to give them encouragement for the more winnable matches ahead.
But Bruno Genesio's side will now feel that they have a very realistic chance of topping Group F. Not just because they have won their toughest group game, but because they did it in style, causing City all sorts of problems at the back and maintaining a solid rearguard action of their own.
Nabil Fekir showed why Liverpool were desperate to sign him during the summer, Maxwel Cornet looks like a good instinctive finisher, and Memphis Depay appears to have matured since his Manchester United days.
Starting XI: Lopes (7); Mendy (7), Denayer (8), Marcelo (7), Rafael (6); Diop (7), Ndombele (8); Aouar (7), Fekir (8), Cornet (8); Depay (7)
Substitutes: Dubois (6), Tousart (6), Traore (N/A)
STAR MAN - Jason Denayer
The former Manchester City academy product had a point to prove to his former employers, who let him go in the summer without ever making a first team appearance.
The whole Lyon defence did a brilliant job of nullifying City's many attacking threats but Denayer was particularly imperious, winning every header, 50-50 and crucial tackle.
Jason Denayer is keeping City's offense at bay.— Tim (@NoChillsTim) September 19, 2018
Apparently Jason Denayer is putting in a MOTM performance at the Etihad, because of course— Gianni Verschueren (@ReverschPass) September 19, 2018
Denayer in defence is having a great game, maybe we should sign him. 😉— Tim (@TimMCFC) September 19, 2018
WORST PLAYER - Rafael
It's cruel to pick on any member of the Lyon side, but Rafael looked vulnerable to the pace of Raheem Sterling on more than one occasion in the first half and it was only the City winger's poor decision-making which let him off the hook.