Brian Giles hit a three-run double in a five-run second, and the bullpen allowed three hits in 5 innings to help the Padres win for the 10th time in 13 games. San Diego has a two-game lead in the NL West over idle Los Angeles with six games to play.
The Cardinals, meanwhile, lost their sixth in a row and saw their Central lead cut to 21/2 games by Houston, which beat Philadelphia 5-4.
Jim Edmonds connected for a three-run, pinch-hit homer in his first at-bat since Aug.26, and Chris Duncan also homered for St. Louis.
Scott Linebrink got four outs for his second save. He pitched in place of Trevor Hoffman, who posted his major league record 479th save Sunday while working for the sixth time in eight games.
Astros 5, Phillies 4
PHILADELPHIA Pinch hitter Mike Lamb's infield single drove in the go-ahead run in the seventh inning, lifting Houston to its sixth straight victory.
The Phillies (82-74) dropped into a tie with Los Angeles for the NL wild-card lead. Both teams have six games remaining in the regular season all on the road.
Alameda's Jimmy Rollins hit a two-run homer off Dave Borkowski, his 25th, to give the Phillies a 4-2 lead in the sixth, but the Astros answered in the seventh.
Nationals 7, Mets 3
NEW YORK Tom Glavine was inconsistent in a postseason tuneup, and New York lost to Washington in its final home game of the regular season.
Reds 5, Cubs 4
CINCINNATI Ken Griffey Jr. moved into a tie with Reggie Jackson for 10th place on baseball's career home run list with his 563rd, a three-run, pinch-hit shot in the eighth inning of Cincinnati's win.