Memphis Depay condemned 10-man Paris Saint-Germain to only their second Ligue 1 defeat of the season following a superb stoppage-time strike for Lyon.
Nabil Fekir opened the scoring for the home side with a brilliant free kick after just two minutes before Layvin Kurzawa drew PSG level on the stroke of half-time.
The league’s runaway leaders were reduced to 10 men shortly before the hour mark after Dani Alves was shown a straight red card for dissent.
But PSG looked set to keep Lyon at bay only for substitute Depay to strike in the third minute of injury time with a remarkable 25-yard winner.
PSG travelled to Lyon on Sunday night without star man Neymar after the Brazil international was sidelined with a thigh injury.
And the visitors, who hammered Dijon 8-0 on Wednesday, were trailing within 95 seconds following Fekir’s long-range set piece.
Fekir spotted Alphonse Areola off his line, and the midfielder took advantage of the PSG goalkeeper’s questionable positioning to beat him at his near post.
Matters then got worse for PSG when Kylian Mbappe left the field of play on a stretcher.
Mbappe was chasing on to a through ball from Marco Verrratti, but was taken out by Lyon goalkeeper Anthony Lopes.
Lopes got enough of the ball to ensure he would not be given his marching orders, but Mbappe was unable to continue and his game was over before the half-hour mark.
An off-colour PSG looked set to be heading into the break behind only for Kurzawa to rifle home an equaliser in the third minute of injury time of the opening period.
Alves floated the ball into the penalty area and Kurzawa was there to hammer home an exquisite left-footed volley from 12 yards.
The visiting side emerged from the interval chasing the victory, but they were a man down with 57 minutes gone after Alves was sent off.
Referee Clement Turpin was poised to issue the former Barcelona defender with a booking following a rash tackle on Tanguy Ndombele, only to change his mind following Alves’s over-zealous protest to the original yellow card.
Alves’ teammate Verratti was fortunate to remain on the pitch after he knocked the red card out of Turpin’s hand.
With a man advantage, Lyon pressed for all three points in the hope of moving above both Marseille and Monaco and into second place in the table.
Unai Emery’s side stood firm for all but every kick of the second half before Depay, the former Manchester United forward, came inside on his right foot to unleash a spectacular winner for the hosts.