On Barry Bonds's 40th birthday, the St. Louis Cardinals made somebody else beat them.
A day after Bonds's three-run, seventh-inning homer contributed to a San Francisco victory, he drew his major league-leading 79th intentional walk at a key spot in the Giants' 5-3, 10-inning victory.
Chris Carpenter, left in to pitch against the lefthanded hitting J.T. Snow, got an inning-ending strikeout in the seventh that preserved a tie.
But the Giants went ahead for good in the 10th on Edgar Alfonzo's two-run homer off Ray King (3-1) and sent the Cardinals to their first extra-inning loss in seven games this season.
San Francisco has won the first two games of the three-game series, the Cardinals' first consecutive losses since they were swept in a three-game series at Pittsburgh June 28-30. St. Louis had won 15 of 17 coming into the series.
Dodgers 12, Padres 2 -- Adrian Beltre hit his third career grand slam, Shawn Green added a three-run shot, and host Los Angeles routed San Diego for its 17th victory in 19 games. Juan Encarnacion followed Green's seventh-inning homer with a solo shot and also robbed Ryan Klesko of a three-run homer in the first, helping the Dodgers maintain their 3 1/2-game lead in the West over San Francisco and dropping the Padres 4 1/2 out.
Phillies 4, Cubs 3 -- Paul Abbott got his first win with the Phillies and drove in the first two runs of his career to lead Philadelphia over visiting Chicago. Abbott, signed June 9 after Tampa Bay released him, allowed three runs and seven hits in 5 1/3 innings for his first win since April 21. He lost his first four decisions with the Phillies.
Astros 6, Brewers 3 -- Tim Redding pitched three-hit ball over five innings in his return to Houston's starting rotation, and the Astros beat visiting Milwaukee. Adam Everett and pinch-hitter Jason Lane homered for the Astros, who had three sacrifice flies in the game. Houston improved to 4-5 since Phil Garner replaced Jimy Williams as manager during the All-Star break.
Braves 5, Mets 2 -- Julio Franco's game-tying double keyed Atlanta's four-run rally in the eighth inning against a struggling New York bullpen, and the visiting Braves defeated the Mets. Leading, 2-1, the Mets turned the game over to Mike Stanton at the start of the eighth. But Chipper Jones opened with a single and scored the tying run on Franco's double. That finished Stanton (0-4), who left to a chorus of boos.
Expos 6, Marlins 2 -- Endy Chavez hit a tying two-run triple in the sixth, then scored the go-ahead run on Jamey Carroll's sacrifice fly to lead host Montreal over Florida.
Pirates 14, Reds 4 -- Jason Kendall's two-run double put host Pittsburgh ahead during a seven-run sixth inning and the Pirates rallied from three runs down to beat skidding Cincinnati.
Rockies 8, Diamondbacks 2 -- Vinny Castilla tied a career high by homering in his fourth straight game, helping Colorado hand host Arizona its 13th consecutive loss and 10th straight at home, extending Diamondbacks club records.