HOUSTON - Mark Grudzielanek hit two and Sammy Sosa and Nomar Garciaparra one each of Chicago's season-high six homers, and the Cubs ended the Astros' four-game winning streak Friday night with a 9-2 victory.
Moises Alou and Corey Patterson each had a two-run shot. Sosa's 567th homer moved him within six of Harmon Killebrew for seventh on the career list.
It was the 28th homer of the season for Sosa, who also tied Mickey Mantle for 40th on the career RBI list with 1,509.
Glendon Rusch won for the first time since July 15, making a successful return to the rotation after working in relief for the past month. The left-hander allowed two runs and six hits in seven innings. He struck out two and walked two.
Ryan Dempster and Kyle Farnsworth finished with scoreless relief.
Houston's return home after a nine-game East Coast trip couldn't have gone much worse.
The Astros, coming off a three-game sweep of Philadelphia, tied a club record by allowing six home runs. Starting pitcher Pete Munro gave up four in his worst outing of the season.
The crowd of 41,071, almost evenly divided between Astros and Cubs fans, seemed to come together to serenade Munro with boos as he left the mound at the end of the fourth.
Munro gave up season highs of six runs and eight hits. He had one strikeout and no walks.
Garciaparra singled and Alou homered to left-center in the first, giving the Cubs a 2-0 lead. Sosa followed by sending Munro's pitch deep into the Astros bullpen.
Morgan Ensberg's two-run double in the bottom half closed the gap to 3-2, but the Astros never scored again and Munro kept struggling.
CARDINALS 5-5, PIRATES 4-3: Scott Rolen became the third St. Louis player to hit 30 homers this season and Chris Carpenter set a career best with his 13th win, leading the host Cardinals to a sweep.
In the opener, Dan Haren allowed three hits over 62/3 innings. St. Louis swept a doubleheader for the first time since Aug. 31, 2002, at Chicago and has won 13 of 17 overall.
Pittsburgh, which had won nine of 12, played the sixth of at least seven doubleheaders this season, the team's most since it had eight in 1984. The Pirates, also swept at Texas on June 10, had won four in a row against the Cardinals.
Rolen homered in the second inning of the nightcap, a drive off Nelson Figueroa, who made his first major-league start since a 6-2 loss at St. Louis on Aug. 21 last season.
GIANTS 7, METS 3: Pedro Feliz homered twice, Edgardo Alfonzo also connected and host San Francisco snapped a seven-game losing streak against New York.
Rookie Noah Lowry had a career-high 10 strikeouts, seven through the first three innings, and Barry Bonds went 3-for-4 with a double to help the Giants maintain a half-game lead in the wild-card race.
Feliz hit a home run into the bleachers in leftfield to start the second inning, then hit another in the fifth to give him 17 this season. His career high was 16, set last season.
PADRES 6, MARLINS 1: Brian Lawrence pitched a five-hitter to match his career high with his 12th win, and Ramon Hernandez hit a three-run homer for host San Diego. League hits leader Mark Loretta homered and scored three in his league-best 54th multihit game.
Lawrence, who finished 12-12 in 2002, struck out four and walked two for his second win in eight starts. He threw 118 pitches and got 17 groundouts in a game that lasted 2 hours, 7 minutes.
PHILLIES 4, BREWERS 2: Jim Thome and Bobby Abreu homered and Eric Milton pitched seven solid innings as visiting Philadelphia ended a seven-game losing streak.
Milton is the first Phillies pitcher to win 13 of his first 15 decisions since Hall of Famer Steve Carlton in 1980 thanks to the best run support in the league, 6.95 runs per game going in. His .867 winning percentage is best in the majors despite a 4.71 ERA.
REDS 2, D'BACKS 0: Randy Johnson struck out 14 for the second straight game and became the second pitcher to reach double digits 200 times, yet he still lost as visiting Cincinnati got an unearned run in the first and Barry Larkin's run-scoring single in the eighth. Johnson trails only Hall of Famer Nolan Ryan (215) in games with 10 or more strikeouts.
EXPOS 4, ROCKIES 3: Tony Batista hit a tiebreaking homer in the eighth and had three RBIs for visiting Montreal.