The Giants manufactured a run in the bottom of the second inning to halve the difference. Brandon Belt singled, stole second base, advanced to third on Gregor Blanco's infield out and scored on Brandon Crawford's sacrifice fly.
After Seattle's Justin Smoak ripped a third-inning RBI double, Belt narrowed the difference to 3-2 in the fourth inning with his first spring home run. The Mariners responded in the fifth with Gutierrez's second spring homer, a one-out drive off Sandy Rosario. The Giants added a run in the ninth on Cole Gillespie's RBI double.
Cain worked three innings and shook off the effects of a bruised knee, which he sustained last Sunday when a comebacker struck him. He allowed three runs and four hits.
Making his first appearance since June 1, 2011, Seattle starter Jon Garland surrendered one hit and one walk in one inning. The 12-year veteran missed all of last season after undergoing shoulder surgery.
"It was definitely a little weird, but it felt good to get out there in a true game situation," Garland said. "It felt really good considering they had their top-line guys in there for the first few at-bats. To go out there and face them and get some ground balls and get some movement on the ball was a good feeling."
The reigning World Series champion Giants ended a stretch of three games in a row that ended in a tie.
Up next: The Giants have been trying to get a long look at outfielder Roger Kieschnick, who's on the 40-man roster. With right-hander Jarrod Parker starting for Oakland on Friday, the left-handed-batting Kieschnick could find himself in the lineup when the Giants play their first spring game against their cross-bay rivals. Kieschnick hit .306 for Triple-A Fresno last year and collected a team-high 15 home runs despite being limited to 55 games by a shoulder injury.
Chris Haft is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.