Boosted by the fit-again Zlatan Ibrahimovic returning to the starting line-up for the first time since September, PSG looked set to ease to victory at the Stade Saint-Symphorien after claiming two early goals.
Modibo Maiga responded with two penalties in the space of four second-half minutes, but the visitors ultimately prevailed courtesy of an 83rd-minute winner from Ezequiel Lavezzi.
Javier Pastore opened the scoring with a cute finish in the ninth minute, before an own goal from Gaetan Bussmann left Metz with a mountain to climb.
However, the underdogs refused to give in and were back on level terms eight minutes after the break following Maiga's second successful spot-kick.
Laurent Blanc's men eventually found a third goal with time running out, Lavezzi poking home from close range after a shot from Ibrahimovic had been half-saved.
The victory moves PSG two points ahead of Marseille, but Marcelo Bielsa's side can retake top spot with victory over Bordeaux on Sunday.
Ibrahimovic was one of six changes to the PSG side that defeated Marseille before the international break, the Sweden international replacing Edinson Cavani.
Metz made two alterations from their last league fixture, with Bussmann and Bouna Sarr replacing Jose Palomino and Thibaut Vion, and the hosts started well with two early efforts on goal.
However, they were easily saved by Salvatore Sirigu and PSG punished their opponents' profligacy with the opening goal on nine minutes, albeit aided by poor Metz defending.
Jeremy Choplin dallied in possession 25 yards from goal, allowing Pastore to steal the ball. He duly held off Guido Milan's challenge and calmly lifted the ball over Johann Carrasso.
The charity continued in the 16th minute as PSG were gifted a second goal, the unfortunate Bussmann deflecting a Lavezzi free-kick into his own goal.
Former Chelsea midfielder Florent Malouda went close to halving Metz’s deficit midway through the first half, but the 34-year-old volleyed just wide after a Maiga knockdown.
Having weathered the PSG threat, Metz began to get a foothold in the game, and eight minutes before the break Guirane N'Daw wasted a good chance, heading wide from Romain Metanire's cross.
There was still time for Adrien Rabiot to have a goal disallowed before the break, but three minutes into the second half the game was turned on its head.
Rabiot gave Metz a way back into the match by fouling substitute Sergey Krivets in the penalty area, and Maiga made no mistake from 12 yards with a calm finish to the right of Sirigu.
Four minutes later the scores were level as the hosts were awarded another penalty after a Gregory van der Wiel handball. Maiga again sent Sirigu the wrong way to complete Metz's comeback.
The Mali striker could have had a hat-trick on 69 minutes as he was given the freedom of PSG's box to meet a Metanire cross, but Sirigu got down well to push away a downward header.
Lavezzi then grabbed the decisive goal, the Argentine pouncing from a yard after Carrasso had partially stopped a strike from Ibrahimovic.
N'Daw fired into the side netting at the other end, but PSG were not to be denied victory and would have added a fourth had Carrasso not made a superb double save to deny substitute Cavani and Ibrahimovic.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.