PHILADELPHIA — John Buck hit a grand slam and Greg Dobbs had four hits, including two doubles, to lift the struggling Marlins to a 6-5 win over the Phillies.
Clay Hensley (2-5) allowed three runs on three hits in 5 2-3 innings to help Florida win for just the fourth time in 21 games and snap a five-game losing streak in Philadelphia.
Florida (59-72) improved to 4-9 overall against the Phillies and 2-5 at Citizens Bank Park this season. The Marlins were swept in four games during their last trip to Philadelphia, June 14-16, when they scored a total of six runs in the four contests.
Roy Oswalt (6-8) matched his career high by allowing 12 hits in one of his worst outings of the season. He gave up six runs — five earned — while striking out two in 5 2-3 innings.
METS 6, BRAVES 0: At New York, Chris Capuano pitched the game of his life, tossing a two-hitter and striking out a career-high 13 in their final matchup before taking a break because of Hurricane Irene. New flood gates were put in place outside Citi Field as a precaution, but Major League Baseball took no chances. The Braves-Mets games on Saturday and Sunday were postponed, to be made up as a doubleheader on Sept. 8. The shutdown comes right after the Mets, at last, won the opener of a homestand. They had been 0-10 in those games this year, a big league record for the start of a season.
REDS 4, NATIONALS 3: At Cincinnati, Miguel Cairo singled home the winning run with one out in the ninth inning, sending the Reds to a victory over the Nationals in a game delayed because some of the lights went out. Cairo's single to the gap in left-center was the third straight hit off Colin Balester (1-2). A bank of lights behind first base went out in the top of the seventh. The umpires talked to both managers and decided to continue. The game was halted when another light bank went dark in the eighth, prompting a 17-minute delay.
CARDINALS 5, PIRATES 4: At St. Louis, Lance Berkman hit a go-ahead two-run home run in the eighth inning and the Cardinals overcame a pair of deficits to beat the Pirates. All of the Cardinals' runs came via the long ball, with Yadier Molina hitting a three-run homer in the second off James McDonald.
BREWERS 5, CUBS 2: At Milwaukee, Ryan Braun hit a go-ahead double in the fifth and scored on the play when Darwin Barney made his second error of the inning, rallying the Brewers to a victory over the Cubs for their 25th win in the last 30 games. George Kottaras homered in the fourth for the Brewers, who lead St. Louis by 9 1-2 games in the NL Central. Barney made two mistakes in the fifth that cost Chicago, which leads the majors with 110 errors. He failed to touch first base on a sacrifice bunt by Nyjer Morgan, then his throw over the head of third baseman Aramis Ramirez allowed Corey Hart and Braun to score.
DIAMONDBACKS 5, PADRES 0: At Phoenix, Josh Collmenter pitched effectively into the sixth inning and the Arizona Diamondbacks took advantage of San Diego's shaky defense. Arizona put pressure on San Diego early with aggressive baserunning and the Padres had no answer, fumbling and bumbling their way to three errors in the first two innings.
GIANTS 2, ASTROS 1: At San Francisco, Jeff Keppinger hit a two-run double, Madison Bumgarner won for just the second time in six starts.
DODGERS 6, ROCKIES 1: At Los Angeles, Aaron Miles scored the tying run on a balk by Esmil Rogers, and James Loney and Matt Kemp capped a six-run seventh inning by the Los Angeles Dodgers with consecutive homers.