PHOENIX — Ian Kennedy pitched six innings to earn his NL-best 21st win and Arizona routed San Francisco 15-2 on Saturday, eliminating the defending World Series champions from the postseason picture.
Gerardo Parra had two hits and four RBIs for the Diamondbacks, who scored six times in the first and tied their single-highest scoring game of the season. Ryan Roberts drove in three runs.
Kennedy (21-4) allowed two runs and five hits, struck out four and walked two. The right-hander is 6-0 with a 1.66 ERA in his past seven starts.
Arizona scored six times in the first inning against Eric Surkamp (2-1), who walked four and recorded just two outs.
Cardinals 2, Cubs 1
At St. Louis, the Cardinals kept their faint wild-card hopes alive when Carlos Marmol forced home the tying run with a bases-loaded walk to Ryan Theriot with two outs in the ninth inning, then threw a game-ending wild pitch to give St. Louis a victory over the Chicago Cubs.
The Cardinals pulled within two games of wild card-leading Atlanta. St. Louis plays the Cubs again today, then closes with three games at Houston.
Nationals 4, Braves 1
At Washington, Chien-Ming Wang pitched six effective innings and drove in a run with his first career hit, leading Washington to the victory.
Making his 11th start since returning from a two-year layoff following shoulder surgery, Wang (4-3) allowed one run and four hits, struck out four and walked none.
Mets 2-6, Phillies 1-3
At New York, Hunter Pence dropped a deep fly ball for an error that led to five unearned runs, and the Mets completed a doubleheader sweep that handed the NL East champions their eighth straight defeat.
In the afternoon opener, R.A. Dickey took a no-hit bid into the seventh inning and David Wright hit a tiebreaking double in the eighth for New York.
Pirates 4, Reds 3
At Pittsburgh, rookie Josh Harrison had four hits to lead the Pirates to the win.
Harrison set a career high for hits, finishing with two singles, a double and a triple against his hometown team. The third baseman was the Big East player of the year at the University of Cincinnati in 2008.
Rockies 4, Astros 2, 13 innings
At Houston, Chris Nelson walked with the bases loaded in the 13th inning and the Rockies snapped a nine-game losing streak.
Matt Reynolds (1-2) pitched an inning to get the victory and Rafael Betancourt finished for his seventh save in 10 opportunities.
Brewers 6, Marlins 4
At Milwaukee, pinch-hitter Corey Hart had a go-ahead, two-run double in the seventh inning, and Milwaukee rallied to beat Florida.
Ryan Braun finished 2 for 3 to raise his batting average to .331, just ahead of the Mets' Jose Reyes (.330) for the NL lead. The Brewers have never had a batting champion.
Padres 3, Dodgers 0
At San Diego, Matt Kemp's pursuit of the Triple Crown took a hit when Aaron Harang threw eight sharp innings to lead San Diego over Los Angeles.
Kemp leads the NL with 119 RBIs and is tied for lead with 37 homers. But he went 1 for 4 to drop his batting average to .325, falling six points behind league leader Ryan Braun of Milwaukee at .331. New York's Jose Reyes is second at .330.
Yankees 9, Red Sox 1
At New York, Derek Jeter capped a six-run second inning with a three-run homer, rookie Jesus Montero had four RBIs in finishing a triple shy of the cycle and the New York Yankees stunned the reeling Boston Red Sox.
Boston dropped to 4-15 since holding a nine-game lead over the Rays in the AL wild-card race on Sept. 4.
Rays 6, Blue Jays 2
At St. Petersburg, Fla., Tampa Bay moved within 11/2; games of Boston in the AL wild-card race, getting a clutch three-run homer from Johnny Damon in a victory over Toronto.
Damon connected with two out in the eighth, giving the Rays a four-run lead. Damon's third hit of the game came after shortstop Mike McCoy mishandled Evan Longoria's grounder for an error and Ben Zobrist flied out for the second out in the inning.
Orioles 6, Tigers 5
At Detroit, Justin Verlander lost his streak of 12 consecutive winning starts, and Baltimore went on to a victory over Detroit when Matt Angle executed a tiebreaking squeeze bunt in the ninth inning.
Pedro Strop (2-1) picked up the win, and Kevin Gregg pitched the ninth for his 22nd save.
Angels 4, Athletics 2
At Anaheim, Calif., Jerome Williams won his fourth straight decision since joining the Angels last month, and Torii Hunter homered and drove in three runs in a victory over Oakland that kept Los Angeles' AL wild card hopes alive.
Williams, who improved to 4-0 in six starts, allowed a run and five hits in 61/3 innings, struck out two and walked two.
Rangers 7, Mariners 3
At Arlington, Texas, Seattle ace Felix Hernandez (14-14) was forced out of the game when he took Michael Young's line drive off his right forearm during the Rangers' six-run fourth. The reigning AL Cy Young Award winner fell to the ground as the ball caromed toward third base for a single.
Hernandez was charged with seven runs — five earned — and 12 hits in his shortest outing since May 7 last year.
White Sox 6, Royals 3
At Chicago, Alex Rios and Brent Morel homered to back John Danks and lead the White Sox over Kansas City.
Indians 8-7, Twins 2-6
At Cleveland, Shelley Duncan drove in three runs in each half of a day-night doubleheader, and Cleveland erased a six-run deficit to beat Minnesota.
The Indians also won the opener behind Duncan, who hit a two-run single with two out in the first and a tiebreaking sacrifice fly in Cleveland's six-run sixth inning.