Jeremy Morel sealed Lyon's last-gasp comeback in a dramatic Europa League quarter-final first leg tie with Besiktas, which had risked being postponed due to crowd disturbances.
Pre-match tension in the east-central French city spilled into the stands on Thursday as scuffles and the jettisoning of firecrackers meant the scheduled kick-off time had was delayed by 45 minutes.
After the trouble abated and the game was allowed to begin, the drama was all on the field as Lyon found themselves battling to respond to Ryan Babel's opener while resisting further Besiktas raids.
With time running out, Corentin Tolisso levelled from close range and Lyon's turnaround was completed inside two minutes as the veteran Morel struck to earn Les Gones a 2-1 first-leg lead.
So impassioned were the agitated throngs in Parc OL that the start of the match was delayed by 45 minutes following the throwing of projectiles that forced fans onto the pitch before kick-off.
Both sets of players had emerged to warm up when objects began to rain down from the stands, causing an unexpected postponement, with some doubt cast whether the game could take place.
The local authorities and UEFA ruled the quarterfinal could begin, and after a brief second warm-up, Lyon and Besiktas were finally able to get the ball under foot.
The Turkish champions looked less affected by the deferral than their hosts, as inside four minutes Marcelo had forced a desperate finger-tip save from Lyon goalkeeper Anthony Lopes.
Alexandre Lacazette, who went into the fixture looking for his 30th goal of the season across all club competitions, soon shot wide as Les Gones bared their teeth.
But it was to be Besiktas who took the first bite, with former Liverpool winger Babel smashing the Turks into a 15th-minute lead with a full-blooded conversion of Talisca's pass inside.
Lyon resisted the follow-up swipe, which saw Marcelo get into the box, connect with Talisca's free kick, yet miss the mark.
Diminutive midfielder Mathieu Valbuena tried to force Lyon back into the tie with a headed effort on the half-hour mark but, just before the break, Marcelo went even closer to scoring.
Again the Brazilian's aim was off -- he had done enough, however, to unsettle Lyon over the interval.
The siege resumed following the restart, this time with Talisca throwing himself at Oguzhan Ozyakup's corner and nodding wide from six yards out.
Lyon boss Bruno Genesio's response was to make a double substitution, with Christophe Jallet adding experience and young Ivorian striker Maxwel Cornet offering the element of surprise up front.
The switch helped the hosts gain territory and in the 55th minute Lucas Tousart was able to find enough space to volley into Fabricio's gloves.
Lacazette was next to threaten at the head of an improving team, the nifty French hitman luring Fabricio out of position but failing to capitalise.
Tolisso hit a post with a header as Lyon poured forward and Cornet looked better poised to score in the 81st minute, only for Spanish stopper Fabricio to flick his attempt to safety.
The dam broke moments later. Valbuena capped his committed performance with a pinpoint free kick to Tolisso, who stuck the ball away with a minimum of fuss.
Before Besiktas had time to react, it was 2-1, with 33-year-old defender Morel catching Fabricio in possession to steal the ball and roll it home unopposed.