NEW YORK -- With a makeshift lineup of rookies and call-ups, the New York Mets pulled off a ninth-inning rally that no one saw coming.
Shut down by Matt Cain for almost eight innings, the Mets fought back against San Francisco's bullpen. Pinch-hitter Zach Lutz had an RBI double and Juan Centeno, making his major league debut, singled in a run off closer Sergio Romo (4-8).
"If there's anything that typifies what we're trying to do here, it was that ninth inning," New York manager Terry Collins said. "When you're playing the world champions, down by three, Matt Cain is mowing you down, it might be easy to say to yourself, `We don't belong here."
Satin had a career-best three RBIs, including a sacrifice fly against Cain in the eighth. Vic Black (2-0) pitched a perfect inning for the win.
"To lose one like this is not easy to swallow," Cain said.
Tejada was injured when he tumbled over sliding left fielder Andrew Brown to catch a popup in the ninth inning. Tejada, who knocked shins with the oncoming Brown, initially stayed in the game but was lifted for Lutz in the bottom of the inning.
"Right up until the last second, I thought he was going to miss me," Brown said.
Tejada will be sidelined six to eight weeks before he can begin rehabilitation, ending his disappointing season that included a strained right quadriceps and a long demotion to the minors.
"When he came in, we knew it was bad," Collins said. "I feel bad for Ruben. He's worked hard to get back here."
Santiago Casilla walked two in the ninth before giving way to Romo, who threw 25 pitches in the series opener Tuesday night. Lutz lined a one-out double and Centeno looped a single that was fielded on one hop by shortstop Brandon Crawford in short left field.
"It's great to see those guys come through when you need them," Collins said.
Satin then lined a game-ending single into left field and greeted a rush of happy teammates with open arms near first base.
"It's a lot different under the bright lights here at Citi Field, but to rally like that here is pretty cool," Satin said.
It was Romo's fifth blown save in 40 chances.
"I was trying to give him a break, but when you walked a couple of guys, you go to your closer," Giants manager Bruce Bochy said. "He was fine to go. I already had him warming up."
Cain managed only two outs July 10 in a 7-2 loss to the Mets, the lone time in 264 career starts that he failed to get out of the first inning. This time, the right-hander was on top of his game.
He scattered six singles over 7 2/3 innings and did not allow an earned run. New York pushed only one runner to second base before the eighth.
"He was great. He pitched well. It's a shame we couldn't get a win for him," Bochy said. "You have to give them credit on coming from behind. They almost did it last night, and they did it tonight."
New York gave away a run with two embarrassing errors in the fourth. Satin bobbled a leadoff grounder to third by Crawford, who scored when Brown flubbed Blanco's two-out fly to right.
Cain helped himself in that inning with a butcher-boy single.
Carlos Torres, scheduled to start Sunday in Philadelphia, struck out four in two hitless innings of relief for New York.
Bochy said Romo won't pitch Thursday, but Casilla will be available. ... Mets rookie C Travis d'Arnaud sat out with a sore right shoulder. He was hit by a foul ball Tuesday night and left the game two innings later. Collins said he hopes d'Arnaud can play Thursday. ... Centeno started behind the plate and singled his second time up for his first career hit. ... Mets CF Juan Lagares snapped an 0-for-19 skid with a second-inning single. ... Giants LHP Madison Bumgarner (12-9, 2.83 ERA) faces LHP Jonathon Niese (7-7, 3.88) in the series finale Thursday.