PHILADELPHIA — Mike Pelfrey threw six effective innings, Nick Evans and David Wright homered and New York snapped a five-game losing streak with a 7-4 win over Philadelphia on Wednesday.
The Mets avoided a sweep with their sixth win in 23 games.
Pelfrey (7-10) allowed three runs and nine hits. Bobby Parnell pitched a scoreless ninth for his first save this season and second in his career. He retired Carlos Ruiz on a grounder with two runners on to end it.
Phillies starter Kyle Kendrick (7-6) gave up six runs -- two earned -- and seven hits in four innings filling in for Cole Hamels.
The Mets scored four unearned runs in the first with the help of a fielding error by shortstop Michael Martinez.
SAN FRANCISCO —Carlos Beltran shook of the pain around his right wrist to hit his first home run since being traded to San Francisco, powering the Giants past the San Diego Padres 2-1 on Wednesday night.
Beltran returned to the starting lineup and sent a fastball from Tim Stauffer (8-10) over the wall in right field in the fourth for his 16th home run of the season. The solo shot was the first of his career at AT&T Park.
Tim Lincecum (12-10) struck out seven and walked five in eight innings, pitching out of the stretch again the entire game. He gave up three hits and also had the go-ahead RBI single.
Santiago Casilla pitched a perfect ninth for his first save of the season.
DENVER — Troy Tulowitzki scored from third on a wild pitch in the bottom of the 10th inning and Colorado completed a three-game sweep.
Tulowitzki reached on a one-out walk and went to third on Jonathan Herrera's single to centre. After an intentional walk to Kevin Kouzmanoff, reliever Aneury Rodriguez (1-5) uncorked a wild pitch to Eliezer Alfonzo and Tulowitzki trotted home with the winning run.
Mark Ellis had four hits, and Tulowitzki and Carlos Gonzalez homered for the Rockies, who have won five straight for the first time since April 15.
Clint Barmes homered and Brian Bogusevic had three hits for Houston, which has dropped four straight.
Matt Belisle (9-4), the Rockies' fifth pitcher, got the win.
ST. LOUIS —Juan Rivera homered and drove in three runs and Los Angeles completed its first road sweep of the season.
The Cardinals were outscored 24-7 in the Dodgers' first three-game sweep in St. Louis since Aug. 20-22, 1993, and have dropped seven of nine overall.
Hiroki Kuroda (10-14) worked seven solid innings and A.J. Ellis hit his first career homer off Jaime Garcia (10-7) to give the Dodgers a two-day total of six homers. Matt Kemp had two singles and two RBIs and James Loney had three hits with two doubles and an RBI.
Eight straight Dodgers reached safely to start a six-run third that matched their season best and put them up 6-1.
Kuroda has won four of his last five starts and is 3-2 with a 2.11 ERA in six day starts. The right-hander allowed three runs and eight hits with four strikeouts and a walk.
WASHINGTON — Arizona's Daniel Hudson fell one out short of his first career shutout.
Hudson (13-9) allowed nine hits, struck out six, walked none, had a run of 13 consecutive batters retired and threw 102 pitches. He had the Nationals blanked through 8 2-3 innings before giving up back-to-back homers to Laynce Nix and Jonny Gomes.
J.J. Putz came on to retire Wilson Ramos for his 32nd save.
The Diamondbacks got two runs in the fourth and two more in the eighth in winning their second straight in Washington.
The score the previous night was 2-0, which means the Nationals were nearly blanked in consecutive games by the Diamondbacks twice this season. Livan Hernandez (7-12) allowed four runs and seven hits with one walk and five strikeouts over 7 1-3 innings.
MIAMI — Toronto's Joey Votto homered in both games of a doubleheader, and Bronson Arroyo pitched eight scoreless innings in the nightcap, leading Cincinnati to a split.
Logan Morrison returned from his demotion to triple-A by homering in the Marlins' 6-5 victory in the opener.
Votto went 5 for 7 with four RBIs in the two games as he extended his hitting streak to 10 games. He has 24 homers this season.
The doubleheader was scheduled to avoid potential inclement weather brought by Hurricane Irene, which was forecasted to hit South Florida on Thursday.
Francisco Cordero relieved Arroyo (8-10) in the ninth and allowed run-scoring hits by Greg Dobbs and Gaby Sanchez. He got two outs to earn his 28th save.
After the Marlins scored six runs in the first game, including three in the pivotal eighth to lift them to a win, they were held in check for most of the second game.
Florida's Chris Volstad (5-11) lost his third consecutive decision since being recalled from triple-A. He allowed three runs in six innings.
Morrison played both games after an 11-day demotion to the minors. He homered in the first game.
Ryan Webb (2-4) struck out the only batter he faced to get the win in the first game.
CHICAGO — Alfonso Soriano homered and Randy Wells pitched effectively into the seventh inning for Chicago.
Wells (5-4) held the Braves to one run and two hits over 6 2-3 innings, striking out six and improving to 4-1 in his career against Atlanta.
Carlos Marmol got the last three outs and joined Lee Smith as the only Cubs relievers to post consecutive 30-save seasons.
Soriano's two-run shot fuelled Chicago's three-run rally in the second. He also walked and was hit by a pitch. Aramis Ramirez added a single and two walks, extending his hitting streak to 13 games.
Chipper Jones and Alex Gonzalez hit solo homers for Atlanta, which managed just three hits.
Derek Lowe (8-12) allowed four hits and two earned runs over seven innings, matching his longest outing of the season. Lowe threw a season-high 119 pitches.
The Cubs snapped the Braves' six-game winning streak and Atlanta remained 6 1-2 games behind the Phillies in the NL East.