PHOENIX — Brandon Belt hit a three-run homer in the eighth inning and the San Francisco Giants rallied against Arizona's bullpen for the third straight game, beating the Diamondbacks 9-6 on Wednesday to complete a three-game sweep.
Belt hit a two-run single off Brad Ziegler in the opener and Pablo Sandoval hit a two-run homer off Arizona closer J.J. Putz on Tuesday.
Belt finished off the series of comebacks with his homer off David Hernandez (1-2), giving San Francisco its first road sweep over the Diamondbacks since July 22-25, 2010.
Angel Pagan led off the game with a homer, Hunter Pence added a 460-foot solo shot and George Kontos (2-1) pitched 12/3 innings after starter Tim Lincecum struggled. Sergio Romo extended his scoreless streak against Arizona to 27 innings in the ninth for his 11th save.
Chad Pennington homered and matched a career-high with four RBIs for the Diamondbacks.
Nationals 2, Braves 0
At Atlanta, Jordan Zimmermann turned in another dominant performance with two-hit ball over eight innings, Ian Desmond hit a two-run homer in the fourth and the Washington Nationals finally beat the Atlanta Braves.
The Braves had won five in a row this season over their NL East rival, and nine straight dating to last season.
Zimmermann (5-1) made sure that streak ended with another dominating performance, snapping a three-game losing streak that had knocked the Nationals under .500.
Pirates 6, Brewers 4
At Milwaukee, Starling Marte hit a tying two-run homer in the eighth inning and Brandon Inge had a go-ahead RBI single to rally Pittsburgh to a victory over Milwaukee, snapping the Pirates' nine-game losing streak against the Brewers.
Cardinals 4, Reds 2
At St. Louis, Lance Lynn won his 10th straight decision, allowing one run and five hits in seven innings to lead the Cardinals over the Reds.
Lynn (5-0) struck out five and walked two, improving to 10-0 in 10 starts and one relief appearing since losing to Milwaukee on Sept. 7.
Mets 7, Marlins 6
At Miami, Jordany Valdespin hit a three-run, pinch-homer, and the Mets rallied Wednesday to break a six-game losing streak and avert a series sweep, beating the Marlins.
The Mets' dormant offense finally came alive after they fell behind 4-1. Valdespin put New York ahead to stay in the sixth inning with his second homer, and NL RBIs leader John Buck added a two-run double in the seventh.
Cubs 6, Padres 2
At Chicago, Scott Feldman retired 18 straight on his way to his first career complete game and the Cubs took advantage of former No. 1 pick Andrew Cashner's wildness in a 6-2 win over the Padres.
Feldman (2-3) earned his second straight win, allowing two runs and three hits while walking one. After Chase Headley singled with two outs in the first, Feldman retired the next 18 batters.
Rockies 7, Dodgers 3
At Los Angeles, Troy Tulowitzki and Carlos Gonzalez each hit two-run doubles, and center fielder Dexter Fowler robbed Adrian Gonzalez of what would have been his second home run of the game, leading the Rockies to a victory over the Dodgers.
Reliever Josh Outman (1-0) got credit for the victory in the rubber game of the series, allowing one hit over two scoreless innings.
Josh Beckett (0-4) gave up five runs and five hits in four innings before he was lifted for a pinch-hitter. It's the first time in Beckett's 13-year career that the three-time All-Star and 2003 World Series MVP has gone winless in his first six starts.
Red Sox 10, Blue Jays 1
At Toronto, Clay Buchholz pitched seven shutout innings to earn his major league-leading sixth win, Mike Napoli hit two of Boston's five home runs and the Red Sox routed the Toronto Blue Jays.
Stephen Drew hit a two-run shot in the second inning and Napoli went back-to-back with Daniel Nava in the fourth as the Red Sox won their majors-best 19th game.
White Sox 5, Rangers 2
At Arlington, Texas, Conor Gillaspie and Alejandro De Aza homered in the seventh inning and Chicago ended a three-game losing streak with a win over Texas.
Angels 5, Athletics 4
At Oakland, Calif., Mark Trumbo went deep for the third consecutive day, and Howie Kendrick and Mike Trout also homered as Los Angeles beat Oakland to end a four-game losing streak.
C.J. Wilson (3-0) remained undefeated despite a season-high five walks. He allowed two runs on six hits in 61/3 innings. Wilson struck out five and stranded six runners in scoring position.
Yankees 5, Astros 4
At New York, Robinson Cano homered and Eduardo Nunez scored the tiebreaking run after a sixth-inning double to send New York past Houston.
Ben Francisco hit his first home run for New York and three relievers supplied spotless work after fill-in starter David Phelps wasted a four-run lead.
Mariners 8, Orioles 3
At Seattle, Michael Morse hit an opposite-field two-run homer and Aaron Harang pitched six solid innings for his first win as Seattle beat Baltimore.
Morse's homer was the highlight on a night when the Mariners scored four times with two outs off Baltimore starter Wei-Yin Chen (2-3).
Royals 9, Rays 8
At Kansas City, Mo., Elliot Johnson homered against his former team and Kansas City rallied from an early five-run hole to beat Tampa Rays on a cold, blustery night.
Lorenzo Cain and Jeff Francoeur each drove in a pair of runs for the Royals, who trailed 5-0 in the third inning before slowly chipping away at the Tampa Bay lead.
Twins 6, Tigers 2
At Detroit, Scott Diamond pitched six solid innings and Minnesota got to Anibal Sanchez early in a win over Detroit that snapped the Tigers' five-game winning streak.
Indians 6, Phillies 0
At Cleveland, Ryan Raburn tied a career high with four hits and Trevor Bauer allowed one hit in five strong innings for his first AL win as Cleveland beat Philadelphia.
Raburn drove in two runs with a single in the third and a double in the fifth. He has 12 hits in his last 14 at-bats, totaling four homers, nine RBIs and five runs scored in the last four games.