Giants left-hander Jeremy Affeldt opened the fourth inning by walking the bases loaded before Cubs catcher Dioner Navarro's two-run single. Chicago first baseman/catcher Steve Clevenger followed with a RBI single to put the Cubs ahead, 3-1, and knock out Affeldt.
"[Affeldt] looked good the first hitter, but he just got out of sync and got a little quick out there," Giants manager Bruce Bochy said.
Clevenger finished with two RBIs on the day.
Both of the game's starting pitchers twirled solid three-inning outings.
Cubs right-hander Carlos Vilanueva surrendered four hits -- one a solo home run to Pablo Sandoval -- and struck out two.
Villanueva came up in the Giants organization, and knew Sandoval. The Cubs right-hander wasn't surprised when Sandoval connected, even though the pitch was ankle-high.
"It was exactly where I wanted to throw it," Villanueva said, shrugging his shoulders.
Maybe he should've thrown it down the middle.
"Maybe he would've popped it up -- you never know," Villanueva said.
Giants righty Yusmeiro Petit -- filling in for Tim Lincecum (blister) -- allowed one hit and struck out one.
Sandoval's third-inning blast continued the Giants third baseman's hot hitting; Sandoval, who now heads to play for Venezuela in the World Baseball Classic, is hitting .500 (7-for-14) with two doubles and three RBIs in his first six Cactus League games.
Up next: The Giants host the D-backs at 12:05 p.m. PT on Sunday at Scottsdale Stadium, with left-hander Barry Zito making his second Cactus League start. San Francisco will face second-year Arizona pitcher Josh Collmenter.
Cash Kruth is a reporter for MLB.com. Follow him on Twitter at @cashkruth. This story was not subject to the approval of Major League Baseball or its clubs.