Cubs 7, Astros 6
Chicago - Derrek Lee hit a three-run shot in the second inning to help the Cubs, who have won 15 of their past 19.
Mets 5, Reds 2
New York - Jose Reyes homered, and Oliver Perez won in his return from the disabled list. Adam Dunn knocked out a scoreboard panel with a long home run for Cincinnati.
Braves 5, Pirates 1
Atlanta - Buddy Carlyle pitched eight impressive innings to win his third straight decision, and surging Atlanta got four hits from Edgar Renteria, completing a three-game sweep of Pittsburgh.
Brewers 4, Rockies 3
Milwaukee - Pinch-hitter Kevin Mench's tiebreaking RBI triple in the seventh lifted Milwaukee.
Marlins 5, Nationals 3
Miami - Miguel Cabrera hit two solo home runs, and Josh Willingham added another to help Florida defeat Washington.
Padres 4, Diamondbacks 0
Phoenix - Justin Germano drove in a run and gave up none to help San Diego avoid a three-game sweep.
Dodgers 5, Giants 3
San Francisco - Los Angeles scored twice on squeeze bunts, held Barry Bonds without a hit all series and won its 11th straight game in San Francisco.
Cardinals 10, Phillies 2
Philadelphia - The Phillies lost their 10,000th game in franchise history as Albert Pujols hit two homers in a rout.