Lyon end Monaco's slim title hopes and keep European dreams alive in Ligue 1 thriller
The visitors got off to the perfect start after just 20 seconds, as Wissam Ben Yedder tapped home his 16th goal this season after VAR deemed him to be onside.
Monaco thought they had doubled their lead when Folarin Balogun struck into the top corner after being one-on-one with Anthony Lopes, but this time the attacker was offside.
It was another ex-Arsenal striker that got on the scoresheet midway through the first half, as Alexandre Lacazette equalised for Lyon by tapping in Said Benrahma’s cross.
The winger then put the hosts ahead just four minutes later, as he checked inside before rifling into the net.
Lyon could have added a third before half time when Lacazette directed the ball towards the goal from a corner, but it was cleared off the line as the visitors held their breath.
The Frenchman could have had a hat-trick with the chances he missed, as his diving header flew over early in the second half.
Those squandered opportunities would come back to hurt Lyon, as Ben Yedder headed home his brace on the hour-mark against the run of play.
Monaco’s top scorer then nearly netted his hat-trick to completely change the game around, but could only skew wide while off-balance.
Remarkably, Ben Yedder did have the ball in the net again later on, but after his header reached the top corner, he was flagged offside.
This game was topsy-turvy from the start, and it was Lyon who grabbed a late winner to the delight of the home support, as Malick Fofana produced a fine finish after being set free by Lacazette, who hit the post shortly after.
In the end, Lyon held on for a sixth successive head-to-head league victory at the Groupama Stadium, while Monaco will be nervous about keeping their Champions League place.
Flashscore Man of the Match: Alexandre Lacazette (Lyon)