ST. LOUIS -- Barry Zito had a specific game plan in mind heading into Tuesday night's start in St. Louis. He'd seen Cardinals hitters foul off pitch after pitch and battle against Matt Cain a night earlier, and Zito knew he'd have to be aggressive against a tough lineup.
And when Buster Posey gave his pitcher an early cushion with a three-run blast in the first inning, Zito had all the more reason to jump into attack mode from the get-go.
"When we go up three in the first, it's even more important to come out, throw strikes and put the pressure on their offense," Zito said.
Behind a strong outing by Zito and Posey's fifth homer in his last six games, the Giants won, 4-2, over the Cardinals before a sellout crowd at Busch Stadium to preserve a slim lead over the Dodgers atop the National League West.
After getting two quick outs, Zito got into a jam in the first as a two-out Carlos Beltran double put runners on second and third. The first inning has caused Zito trouble all year, as 22 of his 66 runs allowed this season have been in the first inning. But Zito got David Freese to ground out to end the threat.
Zito entered the game having allowed 11 earned runs over 9 2/3 innings in back-to-back losses his previous two outings. But aside from Cardinals first baseman Allen Craig, who homered twice off Zito, the veteran left-hander had minimal trouble with a St. Louis lineup that tagged Cain for five runs the previous night.
"[Zito] kept the ball out of the middle of the plate," said Cardinals second baseman Skip Schumaker, who was 0-for-4 against Zito. "I think that's why he had success tonight. A lot of guys were mis-hitting balls. When he keeps you off balance like that, that's when he's successful."
Zito finished an out shy of going seven innings for the third time in his last five starts. His day was done after 6 2/3 innings in which he allowed eight hits and didn't walk a batter for the second time this season -- the first since his first outing of the year on April 9.
Posey said the key for Zito was the left-hander's ability to mix up all of his pitches, as Zito didn't give Cardinals hitters the same look more than a couple of times.
"He's using four pitches, knows when to expand and knows when to really go after guys," Posey said. "He seems to have a good feel for a rhythm of the game right now."
Prior to Tuesday's game, many Giants players passed time on their iPhones and iPads in the clubhouse playing Posey's new mobile game, Buster Bash. The game follows Posey's baseball career and allows players to crush homer after homer playing as the Giants catcher.
Once the game started, Posey made his virtual slugfest a reality.
Posey crushed a 2-1 cutter to right-center off Cardinals starter Lance Lynn to put the Giants ahead early. Back-to-back singles by Angel Pagan and Marco Scutaro set the table for Posey's second home run in as many games.
"He's one of those hitters you want out there with men on base, the game on the line," said Giants manager Bruce Bochy. "He's got great patience, a great swing. He's just one of those good hitters that's in a real nice groove right now."
Posey's homer extended his hitting streak to 11 games, during which he's batting .432 with 13 RBIs.
"Posey's swinging the bat like he can," said Zito. "It's fun to watch, just being in the dugout and watching him put up these at-bats and do some great things for the ballclub."
The Giants added a run in the sixth on an RBI double by Joaquin Arias. Brandon Belt led off the inning with a single and swiped second base. Arias then hit Lynn's 2-1 pitch into the left-center gap for his third RBI and first extra-base hit since July 18.
San Francisco collected 11 hits, with four players turning in multi-hit games. The Giants had just three runners in scoring position in an 8-2 loss Monday and couldn't score any of them. They were 3-for-9 in that same category Tuesday.
Clay Hensley, Sergio Romo and Jeremy Affeldt combined for 2 1/3 scoreless innings in relief. Affeldt allowed a leadoff double by Rafael Furcal in the ninth, but got Matt Carpenter to ground into a double play and Daniel Descalso to strike out to earn his third save of the season.
Mike Still is an associate reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.