Match ends, Manchester City 1, Lyon 2.
Manchester City's Champions League campaign got off to a poor start as the Premier League champions suffered a surprise defeat against Lyon at the Etihad Stadium.
Maxwel Cornet drilled the French visitors ahead after Fabian Delph failed to cut out Nabil Fekir's cross.
City, who are favourites to win this season's competition with some bookmakers, fell further behind before half-time - Lyon captain Fekir finding the net from 25 yards after Fernandinho gave the ball away inside his own half.
Bernardo Silva gave the hosts a lifeline after being picked out by Leroy Sane, but City - lacklustre for long spells - were unable to avoid a first defeat of the season.
With Group F rivals Shakhtar Donetsk and Hoffenheim drawing 2-2 in Ukraine earlier on Wednesday, City are bottom of the group.
They also became the first English side in Champions League history to lose four consecutive matches in the competition having also been beaten in last season's quarter-final second leg by Basel, as well as both legs of the semi-final against Liverpool.
City, looking to replicate their domestic dominance in Europe, were a shadow of the side that swept to 100 points in the Premier League last season.
French defender Aymeric Laporte headed against the outside of the post from Ilkay Gundogan's cross, while Gabriel Jesus and Sergio Aguero were denied by excellent saves from Anthony Lopes.
City, however, appeared to miss Pep Guardiola's direction from the sidelines.
The City boss watched his side's wretched performance from a seat high in the stand as he served a touchline ban following his sending-off in last season's Champions League quarter-final defeat against Liverpool.
Assistant coach Mikel Arteta took over duties in the dugout but the former Arsenal midfielder oversaw a disjointed performance which was as flat as the atmosphere inside the ground.
Silva's goal, after Sane had glided past ex-Manchester United defender Rafael midway in the second half, reinvigorated his side.
However, City now find themselves playing catch up in a group they were expected to dominate.
Guardiola's side made it to the last eight of the Champions League last season and have never gone beyond the semi-finals.
Lyon could have been forgiven for fearing their visit to the Etihad.
Lying seventh in Ligue 1, they already trail leaders Paris St-Germain by eight points just five games into the season.
Yet they were effective at both ends of the pitch as they executed the perfect gameplan to stun the champions of England.
Jason Denayer, who left City for Lyon in August without making a first-team appearance, was impressive at the back while ex-Manchester United forward Memphis Depay hit the post at 2-0 from another sweeping counter-attack.
Fekir led by example. The Lyon skipper, heavily linked with a move to Liverpool in the summer, made one goal and scored the other.
Portuguese keeper Lopes also inspired his side, the save from substitute Aguero in the dying moments a pivotal moment.
Lyon lost at Reims in their first domestic away game this season and drew at Caen in the other.
Yet their Champions League campaign is off to a flying start following a night which will live long in the memory of their travelling fans.
City's next European test is in Germany on 2 October when they meet Julian Nagelsmann's Hoffenheim (17:55 BST). On the same evening, Lyon host Shakhtar Donetsk (20:00 BST).
Match ends, Manchester City 1, Lyon 2.
Second Half ends, Manchester City 1, Lyon 2.
Corner, Manchester City. Conceded by Marcelo.
Attempt missed. Kyle Walker (Manchester City) right footed shot from outside the box misses to the left. Assisted by Riyad Mahrez.
Bertrand Traoré (Lyon) is shown the yellow card for dangerous play.
Ederson (Manchester City) wins a free kick in the defensive half.
Dangerous play by Bertrand Traoré (Lyon).
Attempt blocked. Tanguy NDombele (Lyon) right footed shot from outside the box is blocked. Assisted by Pape Cheikh.
Substitution, Lyon. Bertrand Traoré replaces Maxwel Cornet.
Attempt missed. Leroy Sané (Manchester City) left footed shot from the centre of the box misses to the left following a corner.
Sergio Agüero (Manchester City) is shown the yellow card.
Corner, Manchester City. Conceded by Anthony Lopes.
Attempt saved. Sergio Agüero (Manchester City) right footed shot from the right side of the box is saved in the bottom right corner. Assisted by Aymeric Laporte.
Corner, Manchester City. Conceded by Maxwel Cornet.
Attempt missed. Kyle Walker (Manchester City) right footed shot from outside the box is just a bit too high from a direct free kick.
Leroy Sané (Manchester City) wins a free kick in the attacking half.
Foul by Lucas Tousart (Lyon).
Attempt missed. Leroy Sané (Manchester City) header from the centre of the box misses to the left. Assisted by Riyad Mahrez with a cross.
Fabian Delph (Manchester City) wins a free kick on the left wing.
Maxwel Cornet (Lyon).
Substitution, Lyon. Lucas Tousart replaces Nabil Fekir.
Foul by Fernandinho (Manchester City).
Pape Cheikh (Lyon) wins a free kick in the defensive half.
Nabil Fekir (Lyon) is shown the yellow card for a bad foul.
Fabian Delph (Manchester City) wins a free kick in the defensive half.
Foul by Nabil Fekir (Lyon).
Delay over. They are ready to continue.
Substitution, Lyon. Léo Dubois replaces Rafael.
Substitution, Manchester City. Riyad Mahrez replaces Raheem Sterling.
Delay in match Tanguy NDombele (Lyon) because of an injury.
Foul by Bernardo Silva (Manchester City).
Nabil Fekir (Lyon) wins a free kick on the right wing.
Attempt saved. Sergio Agüero (Manchester City) right footed shot from outside the box is saved in the centre of the goal. Assisted by David Silva.
Fernandinho (Manchester City) wins a free kick in the defensive half.
Foul by Nabil Fekir (Lyon).
Foul by Kyle Walker (Manchester City).
Ferland Mendy (Lyon) wins a free kick in the defensive half.
Attempt missed. John Stones (Manchester City) header from the centre of the box is high and wide to the left. Assisted by Bernardo Silva with a cross following a corner.
Corner, Manchester City. Conceded by Rafael.
Goal! Manchester City 1, Lyon 2. Bernardo Silva (Manchester City) left footed shot from the centre of the box to the bottom right corner. Assisted by Leroy Sané.