Zito threw seven scoreless innings and struck out seven to get the win. Santiago Casillas and Sergio Romo relieved Zito to hold off the Cardinals.
St. Louis starter Lance Lynn failed to pitch past the fourth inning. Lynn was charged with a throwing error for bouncing a toss to second base that bounced off the bag, as the Giants posted four runs in the inning.
St. Louis had chances to score, but simply could not capitalize. In the second inning, Yadier Molina hit a single, and was followed by a double by David Freese, yet the Cardinals could bring neither home.
Pablo Sandoval added a solo shot off Mitchell Boggs in the eight inning.
Game 6 will be in San Francisco on Sunday, with Ryan Vogelson pitching for the Giants against Chris Carpenter.