Updated

Josh Satin completed the comeback with a game- winning two-run single, as the New York Mets rallied for four runs in the ninth to down the San Francisco Giants, 5-4, on Wednesday at Citi Field.

The late offensive surge became a product of an implosion on the mound by Giants closer Sergio Romo (4-8), who retired just one of the five batters he faced and was charged with half of New York's ninth inning production.

Satin, who plated the Mets' first run with a sacrifice fly in the eighth, came up with the bases loaded and two out in the ninth. With the Mets down a run, he sliced a base hit into left field to plate the deciding runs.

"In the ninth inning, there was just one good bat after another," said Mets manager Terry Collins. "That is exactly what we're trying to do here."

Vic Black (2-0) pitched a perfect top of the ninth to pick up the win.

The Giants, who were aiming for their fifth straight victory, received 7 2/3 strong innings from starter Matt Cain. He allowed just an unearned run and six singles over an impressive outing.

Romo inherited runners at first and second after Santiago Casilla walked a pair of batters. Zack Lutz greeted the Giants closer with a run-scoring double down the left-field line and Juan Centeno, making his major league debut, plated another with an infield hit deep in the hole at short to make it 4-3.

Matt den Dekker then worked a walk off Romo to load the bases. Romo induced a fly out from pinch-hitter Omar Quintanilla, but fell one strike short of retiring Satin.

"He was close to getting out of it," said Giants manager Bruce Bochy referring to Romo. "He was a pitch away but we shot ourselves in the foot there with a couple walks."

Aaron Harang made his second start for New York and struck out eight, but was charged with all four of the Giants' runs, however only three were earned.

Gregor Blanco supplied the Giants with the early lead. His blast in the third carried just past the right-field wall and opened a 2-0 edge for the Giants.

New York made two errors defensively in the fourth, with Andrew Brown's dropped fly ball allowing the inning to continue and Brandon Crawford to score from second. Crawford reached base earlier in the inning when Satin botched his grounder toward third.

San Francisco led 4-0 after the fifth, with Buster Posey getting hit by a pitch to begin that inning. He then moved into scoring position with a steal of second base and Crawford brought him home with a two-out single to left.

The Mets were able to produce a run against Cain in the eighth, thanks to Posey's throwing error on den Dekker's steal of second base. The throw scooted into the outfield and den Dekker went to third before scoring on Satin's sac fly.

Game Notes

The Mets pitching staff combined for 14 strikeouts ... Romo blew his fifth save of the season ... After the game, Collins told the media that Mets shortstop Ruben Tejada broke his right fibula after falling at the end of a running catch in the top of the ninth inning.