SAN FRANCISCO (AP) -- Jaime Garcia matched his career high with nine strikeouts, David Freese hit a go-ahead solo home run in the seventh inning, and the St. Louis Cardinals gave manager Mike Matheny a victory against his old Giants team with a 4-1 win Wednesday night.
Buster Posey hit a tying RBI single in the sixth against Garcia (3-2) for San Francisco, which missed multiple scoring chances yet again in what has been the biggest downfall for this bunch.
Pinch-hitter Skip Schumaker added a two-run double in the eighth for the Cardinals, who improved to 13-7 on the road.
In a matchup of the last two World Series champions, the Giants didn't do enough to back Madison Bumgarner (5-3). He lost his second straight start following a five-start winning streak on a breezy Bay Area night featuring a hovering mist above the field.
Garcia, who pitched a three-hitter in a 9-0 win over the Giants on Aug. 22, 2010, in St. Louis, had another memorable performance on the mound. While he allowed nine hits in 7 1-3 innings, he didn't issue a walk for the first time this year and threw an efficient 92 pitches. The lefty also struck out nine San Francisco batters on April 9, 2011.
Jason Motte pitched the ninth for his seventh save in nine opportunities.
Slugger Carlos Beltran missed his third straight game for St. Louis with a sore and stiff right knee, but he could be available in Thursday afternoon's series finale against his former club. Beltran spent the second half of 2011 with the Giants after a trade from the New York Mets.
St. Louis took the lead in the first when Rafael Furcal scored on Allen Craig's fielder's choice. Furcal and Freese each had three hits. Freese connected for his eighth home run with a shot into the tunnel area in left field with two outs in the seventh, then doubled in the ninth.
Freese also singled in the fourth to snap an 0-for-17 funk, helping the Cardinals win consecutive games after they avoided an 0-5 homestand by beating the Chicago Cubs 7-6 on Tuesday.
The Giants squandered chances in the early innings. San Francisco had baserunners reach at least second base in the second, third and fourth innings, stranding runners at third in the second and fourth.
Bumgarner had his eight-start home winning streak snapped, a run dating to his last loss here on Aug. 4, 2011, against the Phillies. The lefty missed a chance to move closer to Ron Bryant's streak of 10 consecutive home victories in 1972-73.
Bumgarner didn't allow a walk for the first time this season, giving up seven hits in 7 1-3 innings. He gave up at least four earned runs for the second straight outing.
The Giants made a late lineup change, scratching left fielder Melky Cabrera with a left toe injury. Nate Schierholtz moved into the lineup in right field, with Gregor Blanco shifting to left.
Cabrera pinch hit with two outs in the eighth and runners on the corners and grounded out on the first pitch he saw. The Giants were 2 for 11 with runners in scoring position and are 6 of 37 (.162) in such situations in three games so far this homestand.
San Francisco skipper Bruce Bochy pulled out one of former Cardinals manager Tony La Russa's old stops.
Bumgarner batted eighth and Emmanuel Burriss in the ninth spot to give the Giants "a couple leadoff hitters, a couple speed guys back-to-back," Bochy said. "I know Tony did it."
Bochy did the same thing on May 20, 2010, at Arizona. He hit Tim Lincecum eighth and Andres Torres ninth.
Furcal was in an 0-for-9 streak before hitting singles in his first two at-bats.
NOTES: There were no walks in the game. ... Pagan has hit safely in 27 of his last 28 games. ... It was 53 degrees with wind and fog at first pitch. ... Giants 3B Joaquin Arias arrived at the ballpark early to be examined by athletic trainer Dave Groeschner, and it was decided to give him one more day to rest his left forearm. He was hit by a pitch during Tuesday night's 5-4 loss to Colorado. ... San Francisco 2B Freddy Sanchez received an epidural in his inflamed lower back and Bochy called it a "setback," but the manager believes Sanchez will return this year. ... The teams play their other four games of the year Aug. 6-9 at Busch Stadium. ... Cardinals C Yadier Molina had the night off after playing the previous two games. ... Bumgarner allowed only 10 earned runs in his first 39 innings this season but has given up eight in his last 13 1-3 innings.