By Sam Bush

Maikel Franco, Scott Kingery and Adam Haseley homered as the Phillies outlasted the Mets 10-7 to close within two games of the playoffs.

The game took 4:29 – a minute short of matching the longest nine-inning game in NL history.

Injured star Bryce Harper drew a bases-loaded walk as a pinch-hitter, capping a three-run seventh inning to put the Phillies ahead 10-6. That came shortly after a sensational catch by right fielder Sean Rodriguez preserved a slim lead.

Wilson Ramos and Robinson Cano hit back-to-back homers in the first inning for a 3-0 New York edge. But Noah Syndergaard couldn’t hold it and the bullpen got battered yet again as the Mets missed a chance to move up in the postseason race.

By the late innings, extra balls were needed. Usually, 16 dozen are rubbed up for games at Citi Field – that’s more than at most parks and usually ample by a lot. But the teams ran through those, and required an extra two dozen to finish.

Phillies starter Vince Velasquez blamed himself for the slow proceedings. He allowed four runs, six hits and four walks in 4 1/3 innings.

”I take full responsibility on that end,” he said.

Pinch-hitter Phil Gosselin blooped an RBI single that gave the Phillies a 5-4 lead in the sixth and Franco followed with a two-run homer. Franco later doubled and had seven homers and 18 RBIs in 15 games against the Mets this year.

The Mets clawed back for two runs in the bottom of the sixth to make it 7-6 and had the tying run in scoring position, but Rodriguez charged hard into the tight foul space, banged hard into the wall and caught a fly by J.D. Davis to end the inning. Rodriguez’s teammates waited outside the dugout to greet him, and several players came off the bench to join in.

Kingery hit a two-run homer in the seventh and Harper walked to make it a four-run lead.

Ranger Suarez (5-1) got two outs for the win and Neris closed for his 24th save in 30 chances. Paul Sewald (0-1) took the loss.