Adam Eaton walked two in the first, with a single sandwiched in between to load the bases. Eaton then got Barry Bonds, with the bases loaded mind you, to ground into a force out at home. Phil Nevin came up with the weak grounder to keep the game scoreless. After Edgardo Alfonzo fouled out, Benito Santiago singled to score Marquis Grissom, giving the Giants an early 1-0 lead.
Ray Durham tripled in a run off Eaton (8-11) in the fourth. Grissom followed the triple with a single of his own to make the score 3-0.
It was all rookie Jerome Williams needed. Williams (7-4) pitched seven innings, allowing four hits and one run.
Khalil Greene hit his first major league home run off Williams on an 0-2 count to open the eighth.
Barry Bonds then opened the fifth with his 43rd home run of the season, third in four days, and 656th of his career, to put the Giant up 4-0. Bonds is also four shy of tying his godfather, Willie Mays, for third place on the all-time list. Babe Ruth is second with 714, while Hank Aaron is first with 755. Bonds now has 75 home runs and 190 RBI against the Padres in his career.
Trevor Hoffman pitched a scoreless eighth and has not allowed a run this season.
Tim Worrell allowed Mark Kotsay's leadoff homer in the ninth, but finished for his 35th save in 42 chances.
With a win over the Padres on Wednesday, and a loss by the Dodgers, the Giants would wrap up a playoff berth.
Xavier Nady went 1-3 with a walk.
Greene ended the day with a .192 batting average after going 1-3, with the homer and a walk.
Denis Savage can be reached at firstname.lastname@example.org