SAN FRANCISCO — Adam Wainwright's fielders gave him little help, making three errors that led to three unearned runs. He just wished he could have bailed out his teammates with the tough pitching he expects from himself every game.
Brandon Crawford hit a two-run single after one St. Louis miscue, and David Freese's throwing error helped the San Francisco Giants score the go-ahead run in a 7-5 victory over the Cardinals on Thursday.
"I had ample opportunities to make pitches to get out of innings that I didn't make," Wainwright said. "The first two innings, two outs, guy's on third and didn't get out of it unscathed either time. That's something that I've really prided myself on in my career. Usually I'm pretty tough in that situation."
Wainwright (2-5) is still trying to find his way back after missing all of last season with an elbow injury. A 20-game winner in 2010, Wainwright has won just twice in eight starts this season and has a 5.77 ERA. He allowed five runs — two earned — and eight hits in 5 2/3 innings.
"I have very high expectations," he said. "Everybody keeps telling me, 'Just be patient. It's coming. You're looking better and better.' But it's tough when you're coming from where I'm coming from, the seasons I've had in the past, it's tough to hear that and not get frustrated because I expect to be great. I haven't been great, but I feel like the ball's coming out better."
St. Louis made three errors in a game for the second time this week, with the most important coming in the sixth inning: Freese's errant throw on pinch-hitter Aubrey Huff's two-out grounder to third allowed Brandon Belt to score the go-ahead run.
First baseman Lance Berkman also made an error in the second inning that helped lead to Crawford's two-run single.
"That's not the kind of defense we've been accustomed to seeing this year and not the kind of defense we're going to see the rest of the way," Cardinals manager Mike Matheny said. "It's just one of those games."
Matt Cain (3-2) has been plagued by poor run support his entire career, with the Giants scoring a major league-low 3.89 runs per game for him since his first big league season in 2006.
But with help from St. Louis, they managed to score five runs with Cain in the game on Thursday to make up for a rough start that included Matt Holliday's two-run homer. San Francisco had its highest-scoring home game of the season.
Santiago Casilla pitched the ninth for his ninth save in 10 chances.
Cain came into the game with the second-best ERA at home in the majors this season, having allowed four runs in 33 innings for a 1.09 mark. He allowed as many runs in the first three innings against the Cardinals as he had in his previous four starts here.
He allowed sacrifice flies by Holliday and Freese in the first inning and Holliday's two-run homer in the third to fall behind 4-3. Cain retired 10 of the final 11 batters he faced. He allowed four runs and eight hits in six innings.
"I started out a little rough," Cain said. "I was kind of all over the place a little bit. A lot of pitches seemed like they were cutting back toward the middle. I wasn't making good quality pitches, and they were taking advantage of it. The guys hung in there with me and got some runs and got the runs we needed and got the win."
Cain ended up on the winning side when the Giants scored twice in the sixth to take a 5-4 lead. Emmanuel Burriss tied it with a sacrifice fly, and Freese's errant throw allowed the go-ahead run to score.
San Francisco added two runs in the seventh off Kyle McClellan on Belt's RBI double and Charlie Culberson's groundout. McClellan left the game with a sore right elbow and was scheduled to go back to St. Louis to get checked out.