The Giants jumped on D-backs top prospect Trevor Bauer in the first, though they didn't necessarily hit the ball very hard against him.
Melky Cabrera started the rally with a broken-bat single to center and Pablo Sandoval advanced him to third on a ground-ball base hit to right. Buster Posey then brought Cabrera home with a sacrifice fly to right.
The D-backs climbed on top in the bottom half of the first when Willie Bloomquist singled off Barry Zito and Gerardo Parra followed with a home run to center to put Arizona ahead, 2-1.
Bauer, though, gave the lead right back in the second when Gregor Blanco led off with a single, stole second, moved to third on a groundout and then scored when Brandon Crawford grounded one through the drawn-in infield.
Bauer allowed two runs on six hits while throwing 53 pitches over three innings.
"What are you going to do?" Bauer said. "They hit one ball hard in three innings and ended up with six hits and two runs.
"I think I did a pretty job of disrupting their timing. Not really a whole lot to be displeased with other than being behind in the count a lot, which I haven't really done this spring."
After Bloomquist's sacrifice fly plated Cody Ransom in the second to put the D-backs ahead, a bit of daring by Giants manager Bruce Bochy helped the Giants tie the game in the fourth.
Ryan Theriot led off the frame with a double and moved to third on a groundout, and Bochy then had Zito lay down a suicide squeeze as Theriot scored easily.
Zito threw five innings and allowed three runs on seven hits while throwing 83 pitches.
"He got better as he went," Bochy said. "He started locating better, getting a better rhythm there. Eariler he got some balls up, and he wasn't quite hitting his spots, but he threw good his last couple innings."
Steve Gilbert is a reporter for MLB.com. Read his blog, Inside the D-backs, and follow him on Twitter @SteveGilbertMLB. This story was not subject to the approval of Major League Baseball or its clubs.