SAN FRANCISCO - The Mets knew they would have their hands full Friday night against perhaps the best team in baseball. And on a picturesque evening by the Bay, the Giants did not disappoint.
Buster Posey launched a two-run homer off Carlos Torres in the eighth inning that sent the Mets to a 4-2 loss, their fourth in a row on a road trip that has quickly gone sour.
The Giants improved to 40-21 overall and 20-9 at home. The Mets are 28-33.
In his previous eight appearances, Torres had held opponents to a .176 average and had not surrendered an earned run. He took over in the eighth with the score tied at 2 after the Giants' Matt Cain and the Mets' Jonathon Niese dueled to a draw. Each allowed two runs in seven innings.
Torres walked Angel Pagan to begin the eighth and got Hunter Pence to ground out, bringing up Posey. Torres missed with a cutter and Posey hit his eighth homer.
The Mets have allowed 222 walks, the most in the league. "One thing I never thought we would do here is lead the league in walks,'' Terry Collins said. "The walks are killing us."
Sergio Romo earned his 19th save, capping a night in which the Mets took a 2-1 lead on Daniel Murphy's two-run homer off Cain in the seventh.
Cain had not pitched since May 21, when a strained right hamstring forced him out of his start after three no-hit innings. Against the Mets, he picked up right where he left off. "He was very good tonight,'' Collins said. "Obviously, the leg's healed up. He had really, really good stuff."
It was familiar territory for the righthander, who made history nearly two years ago. Facing the Astros on June 13, 2012, Cain tossed the 22nd perfect game in baseball history.
On Friday night, Cain took another attempt at perfection into the fifth before Curtis Granderson worked a leadoff walk. Ruben Tejada broke up the no-hitter in the sixth with an infield single. Cain received a warm ovation, then got Travis d'Arnaud to hit into a double play and Niese to ground out.
Niese did not flirt with perfection, but he nearly matched Cain step for step in the efficiency department.
Brandon Hicks, who had doubled earlier in the game, added a triple to centerfield to lead off the fifth. Brandon Crawford followed with a sacrifice fly.
But the Mets delivered two timely swings in the seventh. Matt den Dekker doubled down the leftfield line and Murphy crushed Cain's hanging slider into the rightfield stands for a 2-1 lead.
In the bottom of the inning, Hicks worked a two-out walk before advancing to second on a wild pitch. Crawford followed with his second RBI of the game, hitting a stinging liner through the box to tie it at 2.
One inning later, Posey was jogging around the bases and cannons were firing water into the air in rightfield.
D'Arnaud continued his slide, finishing 0-for-3 with a pop-up and a pair of double-play grounders. His average has slipped to .180. "I'm frustrated with myself right now," he said. "I've got some work to do . . . I've got to be better than this. This is unacceptable for me."
His teammates weren't much better, as the Mets wound up with four hits. Said Murphy: "Hits were hard to come by, to say the least. It was just a tough night for the offense."
And the Mets' challenge will not get easier Saturday night when they face the Giants' Tim Hudson, who is 6-2 with a 1.75 ERA.