Paris - Memphis Depay struck a dramatic late winner as Lyon beat 10-man Paris Saint-Germain 2-1 on Sunday to move within eight points of the Ligue 1 leaders.
Nabil Fekir gave the hosts a shock second-minute lead at Groupama Stadium with a brilliant free-kick, but PSG snatched an equaliser on the stroke of half-time as left-back Layvin Kurzawa hammered home a stunning volley.
PSG full-back Dani Alves was given a straight red card for dissent, and Lyon made their man advantage count deep into injury-time as substitute Depay picked out the top corner.
"At the start, I wanted to cross, but I saw that the keeper was on the side of the goal," Fekir told Canal+.
"It's going to be difficult (to catch PSG), and the goal of the club is to take a Champions League place."
PSG centre-back Marquinhos added: "Football is like that, they manage to shoot and score two goals."
Lyon retook second place from Marseille after inflicting only a second league defeat of the season on PSG, but Bruno Genesio's men would still need an unlikely collapse from the capital club to launch a title challenge.
"We're happy with the result, especially with beating the leaders when we're aiming for second or third place," said coach Genesio.
With Neymar missing due to a thigh problem, Kylian Mbappe returned to the away team's starting XI after scoring as a substitute in the midweek 8-0 thrashing of Dijon, when Neymar netted four times.
Lyon caught the runaway league leaders cold with less than two minutes on the clock, as French international Fekir produced a moment of magic.
Alphonse Areola was anticipating a cross when Fekir shaped to take a free-kick from the right-hand side, but the attacking midfielder whipped in a shot that flicked the inside of the post on its way past the stranded PSG goalkeeper.
The 24-year-old has now scored 16 league goals this season from 19 appearances, while it was also the earliest PSG had conceded in a Ligue 1 game since May 2007.
Cavani left waiting for record
PSG were rocked by Lyon's intense early pressing, but Edinson Cavani, looking for the goal he needed to break Zlatan Ibrahimovic's all-time club goal-scoring record after levelling the Swede's total of 156 on Wednesday, saw a long-range lob spin narrowly wide after home keeper Anthony Lopes's poor clearance.
Mbappe, already bleeding from his head from an earlier challenge, had to be stretchered off and replaced by Julian Draxler after being flattened by some strong goalkeeping from Portuguese Lopes.
PSG levelled in first-half stoppage-time, though, as Kurzawa blasted home a magnificent left-footed volley off the crossbar from his fellow full-back Alves's dinked cross.
Unai Emery's side were reduced to 10 men before the hour mark when Brazilian Alves was sent off for dissent after becoming incensed by a free-kick decision, with Marco Verratti perhaps lucky not to follow him after knocking the red card out of referee Clement Turpin's hand.
Lyon almost retook the lead with 13 minutes to play as Rafael headed over from close range, before Cavani was also booked for dissent as PSG continued to lose their heads.
Maxwel Cornet saw a low effort turned behind by Areola, but it was 69th-minute substitute Depay who provided the winning moment in style.
The former Manchester United winger collected the ball just outside the area in the fourth minute of added time and planted a magnificent, curling finish into the top corner to score his ninth league goal of an up-and-down season.
Earlier on Sunday, fourth-placed Monaco eased to a 3-1 victory over Metz in the principality.
Brazilian left-back Jorge opened the scoring for the reigning champions on the stroke of half-time and Rachid Ghezzal added a second after visiting goalkeeper Eiji Kawashima was sent off.
Ibrahima Niane pulled one back for bottom club Metz, but Rony Lopes put any thoughts of a comeback to bed with a late tap-in.