Bonds missed a chance at hitting for the cycle when Mark Grace, the Cubs' Gold Glove first baseman, snared his line drive in the sixth inning. If the ball would've gotten by into the corner in right, Bonds might have had his triple.
"That's twice he's gotten me," Bonds said of Grace. "We keep tabs on it."
Bonds needs two more homers to become only the fourth player in major league history with 300 homers and 300 stolen bases. His father, Bobby, Willie Mays and Andre Dawson have already done it.
Steve Scarsone also homered for the Giants. Brian McRae homered to lead off the Cubs' first, and Scott Servais and Leo Gomez hit consecutive home runs in the sixth.
Atlanta 6, San Diego 5--Ryan Klesko matched his career high with four hits, including a double and triple, and scored the go-ahead run to lead the Braves at Atlanta.
"I'm being more selective, just trying to get my pitches," said Klesko, batting .424 with eight homers and a team-high 15 runs batted in. "I don't look pretty running the bases or playing left field, but I'm always going to be aggressive and I'm going to beat you."
With one out in the eighth and the score tied, Klesko tripled off Doug Bochtler. Javy Lopez walked and pinch-hitter Dwight Smith won the game with a sacrifice.
Greg McMichael pitched a perfect eighth, and Mark Wohlers got three outs for his fifth save. Atlanta has won five of six games, including three in a row over the Padres.
Tony Gwynn, the National League's leading batter at .472, flew back to San Diego to have his inflamed right heel examined.
New York 4, Colorado 3--Jose Vizcaino, back in the lineup after the birth of his daughter, singled home the winning run with two outs in the 10th inning to help the Mets end a three-game losing streak at New York.
Vizcaino left Friday night's game for a pinch-hitter when his wife, Jessica, went into labor with the couple's third child. Their daughter was born later in the evening, and Vizcaino presented his manager with a cigar.
Green gave the cigar back to Vizcaino after his game-winning hit. Vizcaino had been hitless in 13 at-bats.
Andres Galarraga homered twice, doubled and drove in all three Rockies runs. He led off the ninth inning with his fifth home run against John Franco.
Rey Ordonez opened the Mets' 10th with a single, moved to second on sacrifice by Brent Mayne and scored on Vizcaino's single.
St. Louis 1, Philadelphia 0--Brian Jordan singled home the winning run with two outs in the ninth, giving the Cardinals their second consecutive victory at Philadelphia.
Ricky Bottalico walked Royce Clayton to lead off the ninth, Pat Borders sacrificed and Willie McGee walked. Ron Gant struck out and Jordan lined Bottalico's first pitch to center.
Rookie Alan Benes gave up only two hits in eight innings, struck out five and walked four.
"I don't like to over-praise young pitchers," St. Louis Manager Tony LaRussa said, "but this guy seems to be a complete package. He's a competitor, he has poise and he has real good stuff."
Cincinnati 6, Houston 1--John Smiley won for the first time in four starts and Eric Davis, Chris Sabo and Hal Morris homered to lead the Reds at Houston.
Smiley, an All-Star last season, gave up seven hits, struck out three and walked one, working out of jams in the third, fourth and sixth innings.
"I feel I'm starting to get things ironed out," Smiley said. "I had a great spring. In the seventh inning tonight, I reared back and threw a couple of fastballs. I hope that's a sign I'm starting to come around. This is probably the best I've felt since spring training. We looked great tonight. If we can keep this up, we'll be a tough team the entire year."
Doug Drabek gave up four runs and 10 hits in five innings, struck out five and walked one.
Montreal 11, Pittsburgh 2--Darrin Fletcher hit his first grand slam and tied a career-high with five runs batted in and Henry Rodriguez homered twice, leading Pedro Martinez and the Expos at Montreal.
Martinez gave up a home run to Nelson Liriano to start the game, but ended up allowing only three hits in eight innings.