NEW YORK -- Josh Satin's two-run single capped a four-run ninth-inning rally Wednesday night by the New York Mets as they edged the San Francisco Giants 5-4 in front of an announced crowd of 23,698 at Citi Field.
The Mets got only two runners into scoring position in the first eight innings against Matt Cain, who had a shutout going until allowing an unearned run in the eighth.
Andrew Brown, whose fourth-inning error led to a Giants' run, led off the ninth by working a walk off Santiago Casilla. After Lucas Duda struck out, Juan Lagares walked to chase Casilla.
Giants closer Sergio Romo, who threw 25 pitches in a nonsave situation on Tuesday, entered and allowed Zach Lutz's RBI double. Juan Centeno, who made his big league debut Wednesday, followed with an infield single to bring home Lagares and pull the Mets within 4-3.
Matt den Dekker walked on a full count to load the bases, after which pinch-hitter Omar Quintanilla flew out to shallow right. Satin, who had a sacrifice fly in the eighth, laced a 2-2 pitch to left field and Lutz and pinch-runner Anthony Recker scored easily as the Mets poured out of the dugout to celebrate.
Vic Black earned the win with a perfect ninth for the Mets while Romo took the loss.
The Mets (68-83) have won four of their last six while the Giants (70-81) had their four-game winning streak snapped.
Cain allowed an unearned run on six hits and walked none while striking out six over 7 2/3 innings in his third straight solid start. He's allowed just five runs (three earned) in 21 innings this month, a stretch in which he's lowered his overall ERA from 4.43 to 4.06.
Mets starter Aaron Harang allowed four runs (three earned) on six hits and three walks over five innings. He struck out eight and has whiffed 18 batters over 11 innings in his two starts for New York.
Gregor Blanco hit a two-run homer in the third for the Giants.
San Francisco made the Mets pay for their mistakes by scoring single runs in the fourth and fifth.
Brandon Crawford led off the fourth by reaching on an error by Satin. One out later, Cain pulled a bunt back and singled to right field. Harang appeared to get out of the jam when he got Blanco to loft a two-out fly to right. The ball clipped off Brown's glove, though, and Crawford raced home.
Harang plunked Buster Posey leading off the fifth. Posey stole second and scored on Crawford's two-out single to left.
NOTES: Centeno made his major league debut by starting at catcher for the Mets in place of Travis d'Arnaud, who left Tuesday's series opener after he was hit in the right shoulder by a foul ball. d'Arnaud was sore Wednesday, but Mets manager Terry Collins was hopeful he'd be back for Thursday's game. Centeno singled in the fifth. ... Collins said Zack Wheeler could make two more starts this season. Wheeler has thrown 168 2/3 innings between the majors and minors this year and is expected to be shut down at or around 180 innings. ... An MRI on the left ring finger of Giants SS Marco Scutaro was negative, but he is expected to be out until at least Friday. ... Giants LHP Jeremy Affeldt (left groin) is likely done for the season. Affeldt was out from July 21 through Sept. 11 but felt soreness after pitching one-third of an inning against the Dodgers on Sept. 12.