Messi’s 28th-minute strike was his seventh of the season in all competitions for PSG this season and followed him scoring four goals in two games for Argentina on the just-completed international break.
But Nice, the former club of current PSG coach Christophe Galtier, answered back shortly after half-time through Gaetan Laborde.
Mbappe, though, would have the final word, converting from Nordi Mukiele‘s cut-back with seven minutes remaining.
The win takes PSG back top of Ligue 1, ahead of second-placed Marseille by two points.
PSG had begun the game with Mbappe only among the substitutes after his exploits for France in the UEFA Nations League and ahead of Wednesday’s Champions League clash away at Benfica. Instead, Galtier handed a first start up front to 20-year-old summer signing Hugo Ekitike.
It looked as if PSG would be just fine without Mbappe when Messi took center stage in the 28th minute. Kasper Schmeichel in the Nice goal was unmoved as Messi stepped up and found the very top corner of the goal with that famous left foot from just outside the penalty box.
But Nice had other ideas and capitalized on some sloppy defending from the hosts to draw level just two minutes after half-time.
Unsurprisingly, Galtier soon turned to Mbappe off the bench to aid the search for a winner.
Nice continued to hold their own but Mbappe would eventually make the difference. Mbappe’s 83rd-minute winner was his eighth goal in Ligue 1 this season, taking him level with teammate Neymar atop the scoring charts.