Sergio Aguero grabbed a late equaliser to send Manchester City through to the knockout stages of the Champions League on Tuesday in an entertaining 2-2 draw at Lyon.
Maxwel Cornet curled in a stunning strike to give Lyon the lead on 55 minutes at the Groupama Stadium before Aymeric Laporte headed Premier League leaders City level shortly after.
Cornet struck again with nine minutes to play as Lyon looked on course to inflict their second defeat on City this season, but Aguero promptly glanced home at a corner to give the visitors the point they needed to reach the last 16.
Lyon must avoid defeat away to Shakhtar Donetsk in their final game to join City in the next round after the Ukrainians won 3-2 at Hoffenheim to keep alive their hopes of progressing from Group F.
Nabil Fekir shook off a groin complaint that resurfaced in Friday's win over bitter rivals Saint-Etienne to captain Lyon, who stunned City 2-1 in the opening round of matches in September -- their only loss this season.
City coach Pep Guardiola made the trip without Bernardo Silva, Ilkay Gundogan or Gabriel Jesus due to injury, but he elected against handing a rare start to 18-year-old midfielder Phil Foden who was named among the substitutes.
Cornet fluffed an early headed chance from a corner, although his miss was considerably less glaring than Memphis Depay's after 13 minutes, when the Dutch forward failed to make sufficient contact from the Ivorian's cross with the goal gaping.
Lyon nearly paid the price immediately as City launched an attack of their own that forced Anthony Lopes to plunge down low to keep out a side-footed effort from Riyad Mahrez.
Ferland Mendy earned his first France cap in last week's friendly with Uruguay, and it was a bursting run in behind Kyle Walker from the wing-back that presented Cornet with another magnificent chance.
Mendy's cross was met with a heavy touch by Cornet but one that wrong-footed Ederson, only for the forward to lose his footing as he looked destined to fire Lyon ahead, instead skying over the crossbar under pressure from Laporte.
Cornet went even closer just before half-time as Depay scampered away down the left flank and hung a deep cross towards the far post that the former volleyed first time, the ball skipping off the turf before smacking against the bar.
Mahrez again tested Lopez moments later with a low strike from distance, but Lyon eventually grabbed a deserved breakthrough 10 minutes into the second half.
Depay collected a raking crossfield pass deep down the left before floating the ball towards Cornet on the right, where the Ivorian drifted in and hammered an unstoppable left-footed effort into the far corner from 20 yards.
Lopes produced a stunning reflex save to claw away a Sergio Aguero header from close range, but City needed just seven minutes to pull level, Laporte nodding in after Raheem Sterling's free-kick was flicked on by David Silva.
Lyon then switched off right after the restart to almost gift City the lead, as Leroy Sane's scuffed shot was spilled by Lopes who rolled over to scoop the ball up off the line just in time.
The hosts regrouped though and regained the lead on 81 minutes when Depay slid a pass through for Cornet who slipped the ball under an advancing Ederson.
But after twice conceding injury-time equalisers against Hoffenheim, Lyon were again unable to hold on as Aguero headed in a Mahrez corner just two minutes later to seal City's place in the knockout draw.