Their defensive frailties were exploited by the hosts just before half time when former Newcastle United striker Emmanuel Riviere headed home unmarked at the back post to make it 1-1.
Metz were dealt a blow early in the second period when Benoit Assou-Ekotto was shown a straight red card for a foul on Mbappe, and PSG took full advantage of their extra man.
Neymar got his name on the scoresheet in the 68th minute, the world's most expensive player curling a strike into the net from the edge of the area to put the visitors out of sight.
Cavani netted his second of the night in the 73rd minute, the ball falling kindly to him after the Metz defence failed to deal with Yuri Berchiche's cross, allowing the striker to round Kawashima and tap the ball home.
The result leaves PSG at the top of Ligue 1 with maximum points from the five games they have played so far.