Thomas Tuchel's side had picked up just one point from its previous two top-flight games against Monaco and Bordeaux and looked set for more disappointment after Stephy Mavididi had cancelled out Colin Dagba's opener before half-time.
The champion sealed a fifth win in six games against its hosts in the final 13 minutes, though, with Moise Kean lashing home from an acute angle and Mbappe coming off the bench to tap in from close range for his 100th PSG goal.
The result means PSG is four points ahead of Marseille at the league summit, although Andre Villas-Boas' side has played two games fewer.
PSG, which rested Neymar, started sluggishly and scarcely got close to Jonas Omlin's goal inside the opening half an hour.
It belatedly woke from its slumber and forged ahead after 33 minutes, Dagba sliding home his first professional goal from eight yards after superb work down the left from Angel Di Maria.
Montpellier responded before the interval, though, courtesy of Mavididi's third goal of the season. The former Juventus forward's initial shot was blocked by Dagba, but he squeezed his follow-up effort over the line despite the best efforts of Keylor Navas.
Only a fine stop from Navas prevented Mavididi from adding a second from close range before half-time.
On-loan Everton striker Kean had two presentable chances to restore PSG's lead in the early stages of the second half, but his finishes lacked precision.
Di Maria was denied what would have been a wonderful individual goal in the 67th minute by a smart save from Omlin, but Kean got the better of the Montpellier goalkeeper 10 minutes later, thundering into the roof of the net from eight yards.
Mbappe then added gloss to the scoreline, sliding home Layvin Kurzawa's low ball in stoppage-time for his 10th league goal of the campaign.