The Astros' loss reduced St. Louis' magic number to three for clinching the NL Central. Houston, which lost two of three to the worst team in the NL, trails San Francisco by 6 1/2 games in the wild-card race, pending the Giants' night game against Los Angeles.

Oswalt (19-7) allowed four runs and four hits in six innings to lose for the first time since July 16, a span of 12 starts.

Wayne Franklin (1-1), traded from Houston to Milwaukee on Aug. 31, gave up one run and five hits in six innings for his first career win.

Four relievers pitched the final three innings, with Mike DeJean getting three outs for his 25th save in 28 opportunities.

Oswalt retired the first nine batters, but struggled in the fourth against a makeshift Milwaukee starting lineup that included five players with fewer than 50 at-bats this season.

Cardinals 12, Rockies 6

DENVER  Scott Rolen hit his fourth homer in three games as the St. Louis Cardinals reduced their magic number for clinching the NL Central to two, beating the Colorado Rockies.

St. Louis increased its lead to 8 1/2 games over Houston, which lost to Milwaukee 5-4. The Cardinals swept the three-game series and have won 13 of 15 games overall.

Jason Simontacchi (11-5) allowed four runs and six hits in six innings to earn the win.

D-backs 3, Padres 1

SAN DIEGO  Arizona rallied for two unearned runs in the eighth inning to give Randy Johnson his fourth straight win.

Johnson (23-5) who was matched for seven innings by Padres rookie Clay Condrey, tied teammate Curt Schilling for the major league lead in victories. His September record, going back to 1993, is 27-1 in 38 appearances, including 37 starts.

The Diamondbacks lowered their magic number to four for clinching their second straight NL West title and third in four seasons.

Johnson allowed one run and four hits in seven innings, struck out nine and walked none. He improved to 11-1 lifetime against San Diego, including 4-1 this season.

Reds 5, Pirates 4

PITTSBURGH  Kelly Stinnett hit his first career grand slam with two outs in the ninth inning to lead the Cincinnati Reds to a victory over the Pittsburgh Pirates.

The Reds trailed 3-1 when Ken Griffey Jr. opened the ninth with his fourth single of the game. After Jose Guillen popped out, Mike Williams walked Adam Dunn and Barry Larkin. Pittsburgh manager Lloyd McClendon argued that Larkin didn't hold up on the swing.

Reggie Taylor struck out on three pitches before Stinnett lined a 0-1 pitch just inside the left-field foul pole for his second homer of the season and the 50th of his career. It was the Reds' ninth grand slam, extending a team record.

Stinnett got the start because Jason LaRue bruised his right calf in a home plate collision during Wednesday's game.

Braves 6, Phillies 0

ATLANTA  Tom Glavine pitched six scoreless innings and Chipper Jones hit a three-run homer, carrying the Atlanta Braves to a victory over the Philadelphia Phillies.

Braves manager Bobby Cox reached another milestone, becoming the 12th manager in major league history to win 1,800 games. His record in 21 seasons is 1,800-1,400.

Atlanta scored four runs in the sixth, ruining John Smoltz's chance to go for his 53rd save. He remains one away from the NL record shared by Trevor Hoffman and Randy Myers, five away from the major league mark held by Bobby Thigpen.

Glavine (18-10) has won two in a row since losing four straight starts for the first time in his career. Cox didn't want to overwork his left-hander with the playoffs less than two weeks away, so Glavine was lifted after throwing only 74 pitches.

Expos 6, Marlins 5

MIAMI  Bartolo Colon became the second pitcher to win 10 games in both leagues in a season and Vladimir Guerrero drove in the go-ahead run with a disputed infield hit as the Montreal Expos defeated the Florida Marlins.

The victory extended Montreal's winning streak to six games and gave the Expos their first road series sweep since July 21-23, 2000, at Florida.

Colon (10-3) joined Hank Borowy (New York Yankees, Chicago Cubs) in 1945 as the only pitchers to win 10 games in both leagues in the same season. Colon, who was 10-4 with Cleveland before being traded June 27, allowed five runs and nine hits in five innings to become a 20-game winner for the first time.

With runners on first and third and two outs in the sixth, Guerrero hit a slow chopper to third baseman Mike Lowell, whose throw appeared to be in time based on video replay. First-base umpire Angel Hernandez called Guerrero safe, allowing Jamey Carroll to score. Marlins manager Jeff Torborg argued unsuccessfully.