Miguel Cabrera drove in four runs, Josh Beckett pitched six innings, and the Florida Marlins bounced back from their most dismal defeat of the season to beat Philadelphia, 14-6, last night in Miami.
Beckett (15-8) won his third start in a row, allowing five hits and two runs before departing with a 9-2 lead.
The bullpen struggled, but there was no repeat of Saturday's collapse when the Marlins blew a 2-0 lead for Dontrelle Willis and committed four errors in the ninth as Philadelphia scored 10 runs.
The Phillies fell 1 1/2 games behind wild-card leader Houston with two weeks to go. The Marlins remained 2 1/2 games back, averting a series sweep and snapping a four-game losing streak that matched their longest of the year.
Astros 6, Brewers 1 -- Wandy Rodriguez (10-8) pitched a career-high 7 1/3 innings, and Lance Berkman put host Houston ahead to stay with a two-run, first-inning double in a victory over Milwaukee that extended the Astros' winning streak to five.
Eric Bruntlett went 3 for 3 with four runs scored and two stolen bases as the Astros completed a three-game sweep.
Padres 2, Nationals 1 -- Miguel Olivo raced home to score on an error in the ninth and West-leading San Diego rallied to beat Washington and climb back to .500.
The Padres (74-74) took two of three from the Nationals, who fell 4 1/2 games behind Houston in the wild-card race. San Diego maintained a 5 1/2-game lead over San Francisco and reduced its magic number for clinching the division to nine.
Giants 5, Dodgers 3 -- Barry Bonds's career homer No. 705 leading off the eighth followed a tiebreaking solo drive by Mike Matheny in the sixth and Randy Winn's third homer in as many days as host San Francisco edged Los Angeles.
Bonds's second home run of the season came in his fifth start following three operations on his right knee and caused a commotion as soon as it reached the water as kayakers raced to retrieve his 32d ''splash hit" from McCovey Cove.
Mets 4, Braves 1 -- Tom Glavine pitched a six-hitter to beat his former team and Cliff Floyd hit his career-high 32d homer, leading host New York past East-leading Atlanta, which lost for the fifth time in seven games.
Glavine (11-13) got Jeff Francoeur to bounce back to the mound to finish his 54th career complete game and his first since a 4-0 victory over Colorado May 23, 2004.
Cubs 7, Cardinals 4 -- Carlos Zambrano (14-5) won his sixth consecutive decision, allowing 10 hits in a complete game to pitch host Chicago past Central champ St. Louis and Cy Young Award-contender Chris Carpenter.
The Cubs scored four times in the second off Carpenter, who is tied for the major league lead with 21 wins and departed early after a four-inning tuneup.
Rockies 7, Diamondbacks 1 -- Jeff Francis faced the minimum 18 batters through six scoreless innings, and Garrett Atkins drove in three runs to send visiting Colorado past Arizona.
Francis (13-12), who was 1-5 in his previous seven starts, gave up three hits and walked none to move out of a tie with Toronto's Gustavo Chacin for most wins by a rookie.
Pirates 9, Reds 7 -- Freddy Sanchez tied the score with a triple and scored on Jack Wilson's single as host Pittsburgh rallied for three runs in the eighth to beat Cincinnati.