PHILADELPHIA (AP) - Matt Cain pitched into the eighth inning to outduel Cole Hamels and lead the San Francisco Giants to a 2-1 win over the Philadelphia Phillies on Wednesday night.
The NL West leaders won for the third time in four games, and big-name help was on the way. The defending World Series champions agreed to a trade with the Mets for All-Star slugger Carlos Beltran, who told his New York teammates he had waived his no-trade clause and accepted the deal.
The trade was expected to be announced early Thursday.
Without Beltran, the Giants scratched out two runs to deny Hamels (12-6) his NL-best 13th win.
San Francisco could have Tim Lincecum back on the mound for the series finale Thursday. The floppy-haired ace was scratched from his start Tuesday because of an illness, but manager Bruce Bochy was hopeful he would start the finale.
With Lincecum out, Cain (9-6) had his start moved up a day and again quieted Philadelphia's bats. He allowed an unearned run and four hits.
Javier Lopez got three outs and Brian Wilson finished for his 32nd save. The Giants have won 12 of 17.
Mets 8, Reds 2
CINCINNATI (AP) - Lucas Duda took over for Carlos Beltran and homered to help the New York Mets beat Cincinnati.
Beltran showed up in the clubhouse before the game to say goodbye to his Mets teammates. Duda replaced Beltran in right field and the rookie homered off Bronson Arroyo (7-9), who couldn't extend his long run of success against New York.
Mike Pelfrey (6-9) gave up seven hits in his second complete game of the season, including Joey Votto's second homer of the series.
David Wright also homered and drove in four runs. Daniel Murphy had a career-high four hits.
Braves 2, Pirates 1, 10 innings
ATLANTA (AP) - David Ross hit a bases-loaded single in the 10th inning and Atlanta beat Pittsburgh for its second straight victory in extra innings.
The teams played 19 innings Tuesday night before Julio Lugo scored the winning run on a disputed call at the plate that umpire Jerry Meals later acknowledged was incorrect.
Ross became Atlanta's starting catcher Wednesday when the Braves placed Brian McCann on the 15-day disabled list with a left oblique injury. Ross came through with two hits, driving in both Atlanta runs.
Nate McLouth led off the 10th with a single off Chris Leroux (1-1), recalled from Triple-A Indianapolis before the game. McLouth advanced to third on Freddie Freeman's one-out single and Leroux issued an intentional walk to Dan Uggla to load the bases for Ross.
Scott Linebrink (4-2) pitched the 10th for the win. Uggla finished with three hits.
Astros 4, Cardinals 2
ST. LOUIS (AP) - Astros rookie Jose Altuve drove in the go-ahead run in the ninth inning with his third hit and Houston snapped a five-game losing streak with a victory over St. Louis.
Jason Bourgeois also had three hits and unintentionally helped the Astros score an insurance run on Altuve's hit when center fielder Jon Jay's off-line throw to the plate glanced off his leg. Bourgeois jumped at the last instant before the ball struck his leg and changed course en route to the backstop.
Cardinals manager Tony La Russa made an unsuccessful protest.
Chris Carpenter worked seven strong innings for the Cardinals, who fell a half-game behind the Brewers for the NL Central lead hours after acquiring pitcher Edwin Jackson in a three-team deal with the Blue Jays and White Sox that cost them outfielder Colby Rasmus.
St. Louis reliever Mitchell Boggs (0-3) gave up five hits and two runs in 1 2-3 innings.
Fernando Rodriguez (2-0) worked two innings in relief of Bud Norris. Albert Pujols struck out with runners on second and third against Mark Melancon, who earned his ninth save in 12 chances.
Clint Barmes hit a two-run homer for Houston.
Brewers 2, Cubs 0
MILWAUKEE (AP) - Prince Fielder hit his 23rd home run and Rickie Weeks needed to be helped off the field when he injured his left ankle running out a throw to first in Milwaukee's victory over Chicago.
Zack Greinke (8-4) pitched effectively into the seventh inning as the Brewers kept pace in the crowded NL Central, but losing Weeks would be a huge blow to their playoff chances.
Fielder homered off Carlos Zambrano (7-6) to start the second before Weeks hit a bouncing ball to shortstop Starlin Castro. Weeks stretched to beat the throw, landing awkwardly at the bag and stumbling down the first-base line.
The All-Star second baseman went to the hospital for further tests after being helped off the field.
Brewers owner Mark Attanasio said during the game that initial X-rays showed Weeks' ankle wasn't broken, but Weeks was not putting weight on the leg after the injury.
John Axford converted his franchise-record 26th consecutive save.
Marlins 7, Nationals 5
WASHINGTON (AP) - Javier Vazquez pitched seven strong innings, Emilio Bonifacio extended his hitting streak to 25 games and Mike Cameron hit two home runs as Florida beat Washington for its fourth straight win.
Vazquez (7-9) allowed one run and six hits. John Buck hit a two-run single off Livan Hernandez (5-10).
Mike Stanton's homer put the Marlins ahead in the second. Florida is 13-5 since July 5.
Trailing 7-1, the Nationals scored four runs in the ninth off Steve Cishek. After allowing Michael Morse's two-run single, Leo Nunez retired Laynce Nix on a fly to deep right to earn his 28th save in 31 chances.
Washington lost for the fourth straight time, its longest skid in more than two months, and fell to 9-16 under Davey Johnson.
Diamondbacks 4, Padres 3
SAN DIEGO (AP) - Justin Upton homered twice and Xavier Nady added a two-run shot to lead Arizona.
Ian Kennedy (12-3) won his fourth straight start, limiting San Diego to two runs and four hits with nine strikeouts over six innings.
Upton reached 20 homers this season and extended his hitting streak to eight games with two solo drives off Cory Luebke (3-5).
During his hitting streak, Upton is batting .567 (17 for 30) with four homers and 15 RBIs.
Nady hit his fourth of the year off Luebke in the seventh to break a 2-all tie and send Arizona to its fourth straight win.
J.J. Putz pitched the ninth for his 22nd save. It was Putz's first appearance after missing 20 games with right shoulder tendinitis.
Luebke allowed four runs and six hits in six-plus innings. The rookie left-hander struck out six with one walk as he allowed more runs than in any of his previous five starts this season.
Rockies 3, Dodgers 1
LOS ANGELES (AP) - Aaron Cook outpitched Hiroki Kuroda with seven scoreless innings, Troy Tulowitzki had two RBI singles among his three hits and Colorado avoided a three-game sweep.
Cook (2-5) scattered six hits, struck out two and walked two in his longest outing of an injury-delayed season. The right-hander, who missed the first three months with a broken finger on his pitching hand, has won consecutive starts after going 0-5 with a 5.82 ERA in his first seven outings.
Huston Street pitched the ninth for his 27th save in 29 attempts.
Kuroda (6-13) allowed one run and six hits over six innings with six strikeouts, and is 1-10 over his last 12 starts despite a 3.38 ERA during that stretch.
Colorado broke through in the fifth when Tulowitzki drove in Eric Young Jr. from second with the Rockies' third straight two-out single.