Colorado 9, San Francisco 8: Barry Bonds hit his 732nd home run, but the Giants lost ground in the playoff races, dropping 2 1/2 games behind San Diego into third in the wild-card race and four behind the Dodgers in the NL West.
New York 7, at Florida 4: Jose Valentin scored on a passed ball and Ricky Ledee came across on a throwing error later in the 11th inning to help the Mets rally past the Marlins again.
Philadelphia 6-7, at Atlanta 5-2: Carlos Ruiz and Jimmy Rollins hit two-run homers and Jon Lieber (8-9) won his fourth straight decision to give Phillies a doubleheader sweep. In the opener, Atlanta left fielder Matt Diaz's eighth-inning error allowed two runs to score as the Phillies rallied from an early five-run deficit.
Houston 5, at St. Louis 1: Roy Oswalt (13-9) pitched shutout ball into the ninth inning and Lance Berkman hit his 40th home run to help the Astros avoid a three-game sweep.
at Arizona 4, Washington 2: Livan Hernandez (12-12) blanked his former teammates for seven innings and four Diamondbacks hit solo home runs. Hernandez retired 21 of 22 batters from the first to the eighth before giving up a pair of runs on Robert Fick's pinch-hit double.
at Pittsburgh 6-1, Milwaukee 3-2: Ben Sheets (5-6) took a perfect-game bid into the seventh inning before Chris Duffy led off with a single in the second game. In the opener, Ian Snell (13-10) struck out 10 for Pittsburgh.