A late own-goal helped rescue 10-man PSG as they secured a 3-1 victory at Nantes.
Kylian Mbappe, who has been running down his contract ahead of an expected move to Spanish side Real Madrid, put his current side ahead after just two minutes.
PSG boss Mauricio Pochettino had teamed the 22-year-old with both Lionel Messi and Neymar, but they were unable to add to their tally in the first of the first half.
Neymar taken off on stretcher in PSG win over Saint-Etienne
In the second, Nantes applied the pressure and went close twice early on through Kalifa Coulibaly. The game started to settle out until Keylor Navas rushed out to clatter Ludovic Blas to prevent a goalscoring opportunity, and he was duly sent off.
Gianluigi Donnarumma was not given the nod despite his recent complaints over a lack of first-team action, with Sergio Rico on instead, and he soon made a vital point-blank reflex save.
Randal Kolo Muani brilliantly levelled for the home side when he backheeled the rebound from his own header past the line as Rico desperately tried to scoop it away moments too late.
There was more drama to come when with nine minutes of normal time remaining, Dennis Appiah’s attempt to cut out a Messi through-ball only to send it flying into the back of his side’s net, and Messi then added a late goal of his own in order to secure victory.
The result left Nantes in 11th, while PSG held onto first place.
Talking point - Is this Donnarumma’s chance?
Gianluigi Donnarumma complained recently that he was not being given the chance of regular first team football at Paris Saint-Germain. While he did not seem close to demanding to leave, it was a curious development that he was not the club’s automatic number one. While Sergio Rico came on in Navas’ place on Saturday, it might now be that the Italian youngster is given the nod.
Man of the match - Lionel Messi (Barcelona)
There were hardly any heroes on the pitch for either side, with plenty of mistakes from both teams. Credit must go for Messi for once again turning up to rescue his side. He hasn’t done it so often with PSG as he did with Barcelona, but fans will be delighted to see one of his trademark curlers late in the game.
PSG: Navas 3, Hakimi 5, Kehrer 5, Diallo 5, Bernat 6, Paredes 6, Gueye 6, Verratti 6, Mbappé 6, Neymar 6, Messi 7. Subs: Rico 6, Wijnaldum 6, Pereira 6.
Nantes: Lafont 5, Fabio 7, Castelletto 5, Girotto 5, Corchia 5, Chirivella 5, Moutoussamy 5, Blas 6. Kolo Muani 7, Coulibaly 6, Coco 6. Subs: Merlin 6, Appiah 5, Bukhari 6, Cyprien 6, Geubbels 6.
2' - NANTES 0-1 PSG - Mbappe opens the scoring for the away side.
65’ - RED CARD! Navas rushes out, cleans out Blas as the forward attempts to round him, and concedes a free kick. It's cynical, and a deserved red. But was it the right choice?
70’ - RICO SAVE - Rico pulls off a brilliant reflex save from point-blank range.
76’ - GOAL! Nantes 1-1 PSG - Kolo Muani heads straight at Rico, who palms the ball up and away. The striker reacts and reaches the dropping ball, and backheels the ball over the line with Rico only able to get to it once the goal is given.
81’ - GOAL! Nantes 1-2 PSG. Appiah scores an own goal - Messi tries a reverse through ball, Appiah lunges to cut it out, and it flies wildly past the 'keeper.
87’ - GOAL! Nantes 1-3 PSG. Messi scores - Messi teases the defence as he cuts inside on his left, and curls a trademark goal inside the first post.
PSG fight back to beat Saint-Etienne as Ramos makes debut
Leonardo: ‘Ridiculous’ to suggest PSG held meeting with Zidane