Monaco came from two goals down to end Paris Saint-Germain's eight-match winning streak in Ligue 1, moving second with a stunning victory.
Leaders Paris Saint-Germain saw a two-goal half-time lead go up in smoke as they lost 3-2 at Monaco in Ligue 1 on Friday (Nov 20) ahead of a crucial Champions League game against RB Leipzig.
Kylian Mbappe's double was cancelled out by two goals from Kevin Volland before Cesc Fabregas gave the hosts all three points with a penalty six minutes from time to end PSG's eight-game winning run in the league and complete a stunning turnaround.
Monaco are now second in the standings with 20 points from 11 games, four behind PSG, who host Leipzig in Group H on Tuesday trailing the German side and Manchester United by three points.
Centre back Abdou Diallo, who fouled Volland for Monaco's penalty, was sent off.
Mbappe, back with PSG since picking up a thigh injury against Nantes on Oct 31, struck first in the 25th minute with a shot into the top corner after showing the Monaco defence a clean pair of heels. He doubled the tally 12 minutes later from the penalty spot after Rafinha was brought down by Youssouf Fofana.
Moise Kean was denied PSG's third by the Video Assistant Referee (VAR) for being in an offside position two minutes later. It was referee Clement Turpin who then denied Mbappe his third goal for being offside one minute before the break.
Monaco raised their level after the interval and Volland reduced the arrears in the 52nd minute with a shot from close range. The momentum had swung and Volland levelled in the 66th, again from close range from Fabregas's cross.
The Spanish midfielder then coolly converted the winning penalty.
Earlier, Stade Rennais slumped to a 1-0 home defeat by Girondins de Bordeaux, four days before hosting Chelsea in the Champions League.
Bordeaux prevailed through a first-half goal by Hatem Ben Arfa as Rennes, who hope to revive their hopes in Group E against the London club on Tuesday, slipped down to fifth in the league standings on 18 points.
Ben Arfa danced around three Rennes defender before beating Alfred Gomis with a low shot from just inside the box nine minutes before the break.
The result put Bordeaux up to 11th on 15 points.