PHILADELPHIA — The Mets have been proficient at manufacturing controversy, angst about their fragile arms and temptation to grab televisions and fling them across living rooms.

But manufacturing runs? This season? Not so much.

The Phillies presented ample opportunities for one of the worst situational-hitting teams to score without homering Saturday night, but in a 4-2 loss, the Mets fell short.

“We are not driving runs in when we need to,” said Terry Collins, who watched his club go 0-for-7 with runners in scoring position.

With Yoenis Cespedes out of the lineup again because of his strained right quadriceps, the Mets scored both of their runs without hits, by virtue of sacrifice flies by Jose Reyes and Travis d’Arnaud. With less than two outs, the Mets even moved runners to third base on a grounder to the right side and a successful sacrifice bunt by pitcher Logan Verrett.

Even the staunchest fundamentalists had to smile.

advertisement | advertise on newsday

But small ball couldn’t mask the Mets’ season-long deficiencies in situational hitting, which becomes even more visible when they don’t hit homers.

Asdrubal Cabrera’s throwing error paved the way for the Phillies to push across the winning run in the seventh, but the Mets’ failure to come through with runners on spelled their doom.

“We’ve been having a little trouble on those situations,” said Cabrera, who flied out to leave the bases loaded with the score tied in the seventh. “We’ve got to work on that a little bit and try to do better.”

In the seventh, d’Arnaud led off with a double, then got caught in a rundown when pitcher Edubray Ramos collected Brandon Nimmo’s comebacker and fired to second. D’Arnaud initially was called out, but he was safe upon review.

Juan Lagares, who had doubled earlier, bunted the runners to second and third, but pinch hitter Kelly Johnson’s fly to left was too shallow for d’Arnaud to score. Reyes walked to load the bases before Cabrera’s fly to left, which made him hitless in his last 26 at-bats with men in scoring position.

Mets videos

The Phillies missed a chance to go ahead in the sixth, when Carlos Ruiz was thrown out at the plate trying to score on an infield hit by starter Jerad Eickhoff. But with the help of the Mets, they took the lead for good in the seventh.

The rally began when the sure-handed Cabrera fired wide of first after fielding a routine one-out grounder by Peter Bourjos. Two batters later, Maikel Franco delivered an RBI single.

“That’s something that he does not do,” Collins said of Cabrera.

“That happens in the game,” Cabrera said. “I [didn’t] want to do it.”

The Phillies added an insurance run in the eighth when Ruiz scored on Erik Goeddel’s wild pitch.

advertisement | advertise on newsday

Verrett, in the rotation because of Matt Harvey’s season-ending surgery, was solid.

“I kept us in the ballgame, gave us a chance to win,” he said after allowing two runs in six innings. In the second, he hung a slider to Ryan Howard that produced his 46th career homer against the Mets, fifth all-time. In the fifth, Cody Asche’s groundout drove in Eickhoff, who had doubled.

But Verrett also offered reminders of the drop-off in the Mets’ rotation. He wasn’t as wild as he had been in his last outing, when he walked five Nationals. He walked one, but his command was a little shaky.

But unless they suddenly trust unproven Gabriel Ynoa or go with unspectacular Sean Gilmartin or swing a trade in a thin market, the Mets must hope that Verrett benefits from getting into a rhythm.

“At this point,” Collins said before the game, “what we don’t have are a lot of options.”