Alfonso Soriano drove in three runs to support Chris Volstad and help the Chicago Cubs beat the San Francisco Giants, 6-4, in the opener of a three-game series at Wrigley Field.
Volstad (2-9) limited the National League West leaders to two runs on five hits and three walks over 5 2/3 innings. The Chicago right-hander had snapped a 24-start winless streak in his last outing Sunday.
"Since he's been back, he's done a pretty good job," Cubs manager Dale Sveum said about Volstad. "There haven't been no big blowups. He's been pitching fairly deep into the games and shutting guys down pretty good."
Madison Bumgarner (14-9) pitched only four frames for the Giants, allowing five runs -- four earned -- on six hits and two walks.
"(Bumgarner) was a little bit off today," said Giants manager Bruce Bochy.
Buster Posey finished 3-for-3 with a walk and two RBI for San Francisco, which had won six in a row on the road and was coming off a three-game sweep in Houston.
After capping a three-run ninth-inning rally with a walk-off hit Thursday against the Milwaukee Brewers, Soriano picked up right where he left off in his first two at-bats on Friday.
Soriano opened the scoring in the first with a two-out single that plated Joe Mather, who had walked to begin the inning and later stole second base.
The Cubs pushed four runs across -- all with two outs -- in the third, and Soriano's hot bat came through again. After the first two batters were retired, Soriano followed an Anthony Rizzo single with a home run to left field, his 24th of the season.
Chicago then took a 4-0 lead on Welington Castillo's RBI double. Starlin Castro, who singled, scored on a close play at the plate. Castillo hit a shot off the left-field wall. Gregor Blanco hit cutoff man Joaquin Arias, who threw a strike to the plate. Posey lost the ball after applying a sweep tag to Castro. The ball wound up rolling away from the plate, and by the time Bumgarner retrieved it, Castillo was able to score as well.
The Giants got on the board in the fourth when Pablo Sandoval scored from first on a two-out double by Posey.
After Rizzo clubbed a leadoff home run -- the ball initially was ruled to have been in play, but overturned after a video review -- off George Kontos in the fifth, Sandoval plated Angel Pagan with a sacrifice fly in the next frame.
Volstad was removed after walking Posey and giving up a single to Hunter Pence. Jeff Beliveau retired Brandon Belt on a deep fly ball to right for the final out.
Cubs reliever Shawn Camp, appearing in his 500th career game, gave up singles to three of the first four batters he faced in the eighth. Posey drove in Pagan and Ryan Theriot scored on a Pence groundout, trimming San Francisco's deficit to 6-4.
Carlos Marmol earned his 17th save with a flawless ninth.
The Cubs improved to 11-2 against NL West teams at Wrigley Field this season, but are winless against those clubs on the road (0-13) ... Chicago had lost five straight to the Giants, including a four-game sweep from June 1-4 ... Marmol notched his 112th save to tie Randy Myers for third-most in team history ... Before the game, the Cubs recalled Beliveau from Triple-A Iowa and optioned pitcher Brooks Raley to the minors.