Lille were held by Monaco earlier on Sunday and PSG looked set to replace them at the Ligue 1 summit once they found the breakthrough, but remarkably Nantes hit back in the second half to salvage a potentially massive win.
Alban Lafont produced a number of smart saves as to keep PSG at bay before he was eventually beaten by Julian Draxler in the 42nd minute.
Given Nantes' lack of attacking threat in the first half, Draxler's goal looked as though it would be enough until Randal Kolo Muani pounced on Kylian Mbappe's mistake to restore parity and subsequently teed up Moses Simon to complete an unlikely turnaround.
PSG went close twice in quick succession with 11 minutes on the clock, as Lafont tipped Angel Di Maria's long-range effort over before gratefully seeing Marquinhos' header from the resulting corner skim the top of the net.
Nantes were convinced they were owed a penalty soon after but Presnel Kimpembe was not adjudged to have fouled Kolo Muani.
Mauricio Pochettino's men made the most of that let-off just before half-time, Draxler capitalising on a failed clearance and lashing a left-footed effort out of Lafont's reach.
Mbappe went close early in the second half yet shot wide after doing the hard part.
The France star was made to pay at the other end, his wayward pass going straight to Kolo Muani, who impressively jinked past Kimpembe and finished emphatically.
Kolo Muani was decisive again 19 minutes from time, latching onto a flick-on over the top before squaring to Simon for an easy finish – the goal allowed to stand following a lengthy VAR check for offside.
PSG piled the pressure on but their desperation yielded little, consigning them to successive home league defeats for the first time since November 2012.