Halladay (20-10) allowed three runs and seven hits in seven innings to reach 20 wins for the third time in his career. Hall of Famer Steve Carlton was the last to do it for the Phillies when he won 23 in 1982.

The two-time defending NL champions are 43-15 since July 21, when they trailed the Braves by seven games. They are 17-3 in September.

The Phillies reduced their magic number to clinch the division to six.

Rookie Mike Minor (3-2) lasted just 2 1-3 innings in his eighth career start, allowing three runs and seven hits.

Ryan Madson tossed a scoreless eighth for Philadelphia and Brad Lidge finished for his 25th save in 30 chances.

In Milwaukee, Edinson Volquez allowed one run over eight innings and Cincinnati held on for the win.

Jim Edmonds homered before hurting himself rounding the bases and the Reds didn’t make it easy in the ninth.

Closer Francisco Cordero converted his 38th save, but two runs scored with two outs on two errors when right fielder Jay Bruce made a wild throw that also went through Cordero’s legs.

The Reds moved eight games ahead of St. Louis, which lost 5-2 to Pittsburgh, and now have a magic number of four to clinch the NL Central.

Volquez (4-3) faced the minimum number of batters through the first five innings before losing his command a little by walking four in his final three frames.

Edmonds gave Cincinnati a 1-0 lead with his homer off starter Dave Bush (7-13) even if he could barely make it back around the bases. The Reds said Edmonds had a strained lower right leg.

In Los Angeles, Clayton Richard pitched his first shutout and complete game, Ryan Ludwick drove in four runs and San Diego remained a half-game behind the NL West-leading San Francisco.

The Giants’ 1-0 victory over the Cubs officially eliminated the Dodgers from playoff contention. Los Angeles has lost six of its last eight games.

Colorado fell 2 1/2 games behind the Giants in the division with a 3-1 loss at Arizona.

The Padres moved within a game of Atlanta in the wild-card race. They have won eight of the last 10 games with the Dodgers, and five in a row.

Richard (13-8) allowed eight hits, struck out six and walked two in his 65th career start.

Ludwick gave San Diego a 2-0 lead with his two-out single to left in the third inning. He drove in the

In Phoenix, Kelly Johnson hit a two-run homer to back Joe Saunders’ eight-inning gem for Arizona.

Other than pinch-hitter Ryan Spilborghs’ run-scoring single in the eighth, Colorado couldn’t get much off Saunders (3-6) to drop 2 1/2 games behind first-place San Francisco.

Johnson hit his two-run homer off Jorge De La Rosa (8-5) in the third and Saunders held the Rockies to a run and six hits. Juan Gutierrez closed out the ninth for his 11th save.

The only drawback for the Diamondbacks was breaking the all-time season strikeout record.

In Chicago, Matt Cain and three relievers combined on a two-hitter and Buster Posey homered for NL West-leading San Francisco.

Cain and Chicago’s Carlos Zambrano each pitched six scoreless innings, but the Giants did just enough to prevail. San Francisco finally broke through with one out in the eighth when Posey drove a 3-1 pitch from Andrew Cashner (2-6) to center field.

His 15th homer gave him 62 RBIs — the most by a Giants rookie since Chili Davis’ 76 in 1982.

In a game that was delayed for more than an hour by rain at the start, Cain and Zambrano sailed along before being lifted for pinch hitters.

The only hits the Cubs got were a single up the middle by Kosuke Fukudome in the second and a checked-swing single to single to

In Pittsburgh, Paul Maholm became the latest slumping pitcher to shut down fast-fading St. Louis and Pittsburgh won its season-high fourth straight.

The Pirates remain two losses from their first 100-loss season since 2001, but are 4-0 on a homestand that began with a three-game sweep of Arizona.

In Washington, Ivan Rodriguez hit a tying homer off the left-field pole to spark a seven-run rally with two outs in the bottom of the eighth inning.

Washington trailed 3-0 in the first inning, then 3-1 in the eighth. But Adam Dunn walked and, two outs later, Rodriguez hit his fourth homer, a two-run shot off Felipe Paulino (1-9). After the next two batters reached, pinch-hitter Adam Kennedy hit a go-ahead RBI single.

The Nationals wound up sending 12 batters to the plate. One run scored on a wild pitch by Paulino, and others came home on singles by Dunn, Ryan Zimmerman and Ian Desmond .

Tyler Clippard (10-6) pitched a scoreless eighth.

In Miami, Gaby Sanchez hit a tie-breaking three-run homer in the bottom of the eighth inning for Florida.

The loss officially eliminated the Mets from playing in the postseason.

Jose Veras (3-2) worked one inning and picked up the win despite losing the lead in the top of the eighth.

Clay Hensley pitched a scoreless ninth for his fourth save in seven chances.

Marlins rookie Adalberto Mendez allowed one run and scattered 10 hits over seven innings.