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: Young left-hander James Paxton makes his first Cactus League start Friday as Seattle hosts the Rangers at Peoria Stadium. Paxton, 24, is expected to throw two innings, with emerging right-handed prospect Brandon Maurer to follow with two innings of his own. Also slated to throw are Anthony Fernandez, Andrew Carraway, Brian Moran, Bobby LaFramboise and Danny Farquhar.
Chris Haft is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.