H. Rumph Jr, Associated Press
Philadelphia Phillies relief pitcher Brad Lidge (54) celebrates with catcher Shane Victorino after the Phillies defeated Milwaukee.

PHILADELPHIA — Ryan Howard hit his major league-leading 43rd homer and Jamie Moyer pitched 5 2/3 effective innings for Philadelphia in a 6-3 victory over Milwaukee on Thursday night.

The Phillies pulled within three games of the NL East-leading Mets and the wild card-leading Brewers by roughing up Ben Sheets (13-8).

Prince Fielder hit his first homer since Aug. 13, but slumping Milwaukee lost for the eighth time in 11 games.

Moyer (14-7) allowed three runs and four hits, improving to 7-1 in his last 13 starts. He was pitching on three days' rest for the first time since 2004.

He left after Fielder's two-run shot made it 4-3. Ryan Madson pitched two innings, Chad Durbin retired the only batter he faced with two on in the eighth and Brad Lidge finished for his 36th save in as many chances.

Sheets, who entered with a 20-inning scoreless streak, allowed five runs and nine hits in six innings.

Howard connected in the first to give the Phillies a 2-0 lead.

CUBS 3, CARDINALS 2: At St. Louis, Rich Harden worked six solid innings and Kerry Wood got Albert Pujols to pop up with two men on for the final out in a victory over the St. Louis Cardinals.

Ryan Theriot, Derrek Lee and Mike Fontenot had RBIs for the Cubs, who lead Milwaukee in the NL Central by 5 1/2 games with 16 to play after taking two of three with two one-run decisions. The Cardinals remained 4 1/2 games behind the Brewers for the NL wild card.

PADRES 11, GIANTS 3: At San Diego, Adrian Gonzalez homered twice and drove in four runs to set career highs with 31 homers and 103 RBIs, leading the San Diego Padres to victory over the San Francisco Giants.

Gonzalez, San Diego's only All-Star this season, joined Fred McGriff (1991-92) and Phil Nevin (2000-01) as the only players in Padres history with consecutive seasons with 30 homers and 100 RBIs.

ASTROS 6, PIRATES 0: At Houston, Roy Oswalt threw a three-hitter for his second straight complete-game shutout and set a Houston record for consecutive scoreless innings.

Houston has won 14 of 15 to pull within three games of NL wild card-leading Milwaukee, which lost 6-3 at Philadelphia, but it's uncertain when the Astros will play again. The first two games of their weekend series against Chicago were postponed and Sunday's matchup could be next with Hurricane Ike closing in on Texas.

Oswalt (15-9), who had two RBIs, hasn't allowed a run in 32 1/3 innings, passing the record of 31 set by J.R. Richard in 1980. He needed only 90 pitches to finish his sixth career shutout and 15th complete game.

Oswalt retired 20 in a row after Luis Rivas' one-out single in the first inning on his way to winning for the ninth time in 10 decisions.

The Astros have won six straight and their 36-16 record since the All-Star break is the best mark in the majors.

The Pirates have lost six straight and 17 of 20.

BRAVES 8, ROCKIES 4: At Atlanta, Yunel Escobar's three-run homer capped a five-run sixth inning for Atlanta, which completed a three-game sweep.

The Rockies, who have lost five straight, fell 8 1/2 games behind Los Angeles in the NL West.

Braves rookie Jair Jurrjens (13-9) set a career high with 10 strikeouts, allowing eight hits and four runs in six innings.

Escobar had three hits, including his 10th homer, and a walk.

Colorado starter Ubaldo Jimenez gave up five hits and three runs, two earned, in five innings. He struck out six but walked four. He left with a 4-3 lead, but the Braves scored five runs in the sixth off Glendon Rusch (5-5) and Matt Herges.

AMERICAN LEAGUE

ROYALS 3, TWINS 2: At Minneapolis, David DeJesus had the game-winning single in the 10th inning for Kansas City in a 3-2 victory over Minnesota.

Minnesota wasted eight impressive innings by Francisco Liriano, his longest start since July 28, 2006. It matched the second-longest outing of his career.

The Twins entered one game behind Chicago in the AL Central, with the White Sox hosting Toronto on Thursday night.

Matt Guerrier (6-8) got one out in the 10th before surrendering two straight singles and leaving runners at the corners for Dennys Reyes.

DeJesus hit his first pitch into left field for the lead, giving Ramon Ramirez (3-2) the victory after a perfect ninth. Joakim Soria worked the 10th for his 36th save.

Esteban German had an RBI single and Jose Guillen drove in a run with a double for the Royals.

ORIOLES 6, INDIANS 3: At Baltimore, Nick Markakis had two hits and Melvin Mora, sidelined since Aug. 29 with a strained left hamstring, returned for Baltimore with a two-run double that gave him 99 RBIs.

The Orioles earned a split of the four-game series, which began with Baltimore mired in an eight-game losing streak.

Baltimore went ahead 5-3 with a two-run fifth. Markakis, who earlier snapped an 0-for-13 skid, singled and took third on a double by Aubrey Huff. Ramon Hernandez drove in a run with a groundout and Asdrubal Cabrera misplayed a two-out grounder to short, allowing Huff to score.

Lance Cormier (3-3) pitched three innings of one-hit relief and rookie Jim Miller worked the ninth for his first major league save.

Zach Jackson (0-3) gave up five runs, four earned, and eight hits in six innings. He has lost three straight starts.

BLUE JAYS 6, WHITE SOX 4: At Chicago, Shaun Marcum pitched effectively for 7 1/3 innings and the Blue Jays broke a scoreless tie with six runs in the eighth Thursday night in beating the White Sox 6-4 for their 11th win in 12 games.

Chicago, which has dropped four of five, remained one game ahead of the Twins in the AL Central. Minnesota lost to Kansas City 3-2.

Toronto began the night seven games behind Boston in the AL wild card chase.

RANGERS 6, ATHLETICS 1: At Oakland, Calif., Hank Blalock homered, Chris Davis and Joaquin Arias each drove in two runs and the Texas Rangers beat the Oakland Athletics.

Dustin Nippert (3-4) matched his career high with seven strikeouts in five strong innings, allowing four hits and one run to win back-to-back starts for the Rangers — another impressive outing in just his fourth start of 2008.

ANGELS 7, MARINERS 4: At Anaheim, Calif., Francisco Rodriguez got the final three outs for his 57th save to tie Bobby Thigpen's major league record, and the Los Angeles Angels beat the Seattle Mariners. Thigpen set the record in 1990 with the Chicago White Sox.

The Angels clinched the AL West title on Wednesday.