World Cup star Mbappe stole in at the far post in the 67th minute for his 13th league goal of the season, making him France's top scorer with Neymar away on holidays in Brazil.
PSG coach Thomas Tuchel can also go on holiday relaxed with his club on 47 points, as second-placed Lille, 13 points adrift, lost 2-1 at home to Toulouse.
"I'm very happy because we can see the progress of the team," said Tuchel. "You can feel the energy, it's a good thing to build on next year."
With Neymar away, Angel Di Maria was in the line-up and came closest to making it 2-0, forcing a fine save from Nantes goalkeeper Ciprian Tatarusanu, who then watched the Argentine hit the crossbar from the rebound.
Meanwhile, third-placed Lyon drew 1-1 at fourth-placed Montpellier after opening the scoring thanks to their captain Nabil Fekir before a great header from Ruben Aguilar gave the surprise-package southerners a share of the spoils.
Henry's Monaco were dreadful and the former Arsenal striker spat on the ground after Nolan Roux of Guingamp made fools of the Monaco defence to make it 2-0.
"I'm not going to have a good holiday," bemoaned Henry. "Now you have to work and make do with what you have.
"It's necessary to work and work. There are still a lot of points to play for and that's the only positive thing about this evening."
Monaco were champions in 2017 but now have 13 points from 18 matches, just two more than Guingamp, and vice-president Vadim Vasilyev said the club needs to dip into the January transfer market.
"Until tonight, I thought we didn't need new players, but we do," Vasilyev told Canal+.
"It's difficult to analyse right now as I'm upset like the supporters. I understand the disappointment, it's up to us to act and draw the right conclusions."
Strasbourg paid hommage to the victims of a terror attack that killed five people on December 11 in their first home game since as they won 2-0 against Nice.
Meanwhile, Marseille, in sixth, drew 1-1 at Angers and fifth-placed Saint-Etienne beat Dijon 3-0.