Manchester City twice came from behind to draw 2-2 with Lyon at the Groupama Stadium tonight and secure their place in the knockout stages of the Champions League.
Headers from Aymeric Laporte and Sergio Aguero pegged back the French outfit who had led on two separate occasions in the second half thanks to Maxwel Cornet's double.
A stoppage-time winner from Shakhtar Donetsk in Group F's other match this evening prevented Lyon from joining City in the last 16 until the final gameweek in a fortnight's time.
The hosts had a series of glorious chances to open up a lead by the break, squandering the first of them on five minutes when Cornet failed to make contact with a Nabil Fekir corner which had been dropped onto his head six yards from goal.
Memphis Depay, who had notched seven goals in his last 10 games for club and country prior to kickoff, was equally wasteful on 13 minutes when he was picked out unmarked at the back post by Cornet, only to scuff a simple side-footed volley.
City raced up the other end to create an opportunity of their own, with Raheem Sterling and Aguero combining to tee up Riyad Mahrez on his left foot, but his effort lacked the power or placement to seriously trouble Lyon goalkeeper Anthony Lopes.
Depay went close with a long-distance free-kick on 25 minutes, but Lyon continued to cut through City in open play too and Ferland Mendy's cross supplied Cornet with their third gilt-edged chance of the half, which he blazed over the bar after choosing to take a touch in the penalty box.
It appeared as though it would not be Cornet's night in front of goal when his acrobatic volley from Depay's delivery bounced up and off the woodwork, but he was finally rewarded for his persistence with the opening goal 10 minutes after the restart.
Cornet cut inside Alexander Zinchenko on the edge of the box and curled a left-footed shot beyond Ederson to add to his goal in Lyon's win at the Etihad Stadium in September.
The Citizens had not trailed in any match since that reverse fixture but responded well to the unusual position of being behind, and nearly found an equaliser when Mahrez crossed for Aguero for a close-range header which forced a sharp stop from Lopes.
The deficit lasted only seven minutes as Laporte, the stand out performer for the English champions, stooped to direct a pinpoint header across Lopes and into the bottom corner, from a Sterling free kick which had been flicked on to him at the back post.
Lopes nearly gifted City the lead two minutes later when he allowed a deflected shot from Leroy Sane to squirm under his body and only just recovered before the ball crossed the line.
Lyon lost some of their ambition in the final half an hour but were able to fashion one more clear-cut chance when Tanguy Ndombele and Fekir passed through the City lines and set up Cornet for a second goal which he squeezed through Ederson on 81 minutes.
City's response was even quicker this time as Aguero climbed highest from a corner to glance a header inside the far post two minutes later, a crucial goal which prevented Pep Guardiola's side from being leapfrogged by the Ligue 1 outfit at the top of Group F.
The Citizens still need a point from their final game against Hoffenheim to have the favour of being group winners in the last-16 draw, while Lyon will follow City into the next phase if they avoid defeat away to Shakhtar, who can still go through themselves with victory.
LYON (3-4-1-2): Lopes; Denayer, Marcelo, Marcal; Rafael (Tete, 74'), Ndombele, Aouar, Mendy; Fekir (Traore, 84'); Depay, Cornet (Terrier, 89')
MAN CITY (3-4-2-1): Ederson; Walker, Stones, Laporte; Zinchenko; Fernandinho, Silva, Mahrez; Sane (Delph, 71'), Sterling; Aguero (Foden, 90')