UNDATED (AP) — The Washington Nationals ran their lead in the National League East to seven games over Atlanta after rallying for their ninth straight victory, 3-2 over Arizona. Pinch-hitter Anthony Rendon's (rehn-DOHNZ') game-winning single scored Bryce Harper with the winning run in the bottom of the ninth. It's the Nationals' fourth walkoff victory during their season-high winning streak.

Harper went 3-for-4 in addition to scoring the winning run. The victory goes to Nationals closer Rafael Soriano, who pitched a scoreless ninth.

In other baseball action:

— Pittsburgh rallied from a 2-0 deficit late in the game to beat Atlanta 3-2. That ends the Braves' five-game win streak. Justin Upton dropped a routine fly ball in the ninth which set the stage for Gaby Sanchez's game-winning sacrifice fly that capped the Pirates' comeback.

— Josh Hamilton broke out of a slump with two hits and three RBIs and the Los Angeles Angels beat the Boston Red Sox 8-3. The Angels' seventh win in eight games put them 1 1-2 games ahead of Oakland but it was costly. Right-handed starter Garrett Richards sustained a serious patellar injury in his left knee while running to cover first base in the second inning, and probably is lost for the season. He'll be examined in Los Angeles. Richards was 13-4.

— Lucas Duda (DOO'-duh) hit a three-run homer, Eric Campbell also connected and the New York Mets beat the Oakland Athletics 8-5 to snap a three-game losing streak. Zack Wheeler improved to 9-8, allowing two earned runs while working 5 2/3 solid innings. Wheeler is 6-0 with a 2.12 ERA over his nine outings since June 30.

— Rick Porcello won his 14th game by hurling a three-hit shutout in pitching Detroit past Tampa Bay 6-0. Victor Martinez hit a grand slam. Porcello, who is 14-8, retired 20 straight batters after Ben Zobrist's double in the first inning.

— The Houston Astros beat the New York Yankees 5-2. Robbie Grossman got the big hit as the Astros broke open a close game with four runs in the seventh inning. The Yankees dropped nine and a-half games behind Baltimore in the AL East.

— Nelson Cruz took the major league lead with his 33rd home run in Baltimore's 4-3 win over the Chicago White Sox. It's the Orioles' first three-game sweep in Chicago since 1995. Adam Jones and Steve Pearce also went deep for the AL East-leading Orioles.

— Jose Bautista hit a three-run home run and Colby Rasmus added a two-run shot to lead Toronto to a 9-5 win over Milwaukee. Bautista's 24th homer of the season capped off a five-run sixth inning for the Blue Jays who won for only the second time on their eight-game road trip. The loss snapped Milwaukee's five-game winning streak.

— Matt McBride hit his first career grand slam and Jorge De La Rosa pitched eight strong innings in helping the Colorado Rockies cool off the Kansas City Royals, 5-2.

— Lance Lynn beat Cincinnati for the third straight time, Jhonny (JAH'-nee) Peralta hit a bases-clearing double and the St. Louis Cardinals topped the Reds 7-3 to complete a three-game sweep.

— San Diego jumped on the Dodgers with three runs in the second inning and beat the NL West leaders 4-1. Eric Stultz pitched five innings for the win. Alexi Amarista had an RBI single in the second and two stolen bases.

— Jake Peavy pitched seven solid innings in his fifth start with San Francisco, and the Giants rolled past the Chicago Cubs 8-3.

— Cleveland blanked Minnesota 5-0. Rookie T.J. House threw shutout ball into the sixth inning, and combined with four relievers on the shutout.

— Alex Rios drove in a pair of runs to help Texas edge Miami 5-4. The Rangers teed off on Marlins starter Nathan Eovaldi for five runs in the first two innings.

— Chase Utley's tie-breaking single in the bottom of the fourth inning capped a three-run rally and gave Philadelphia a 4-3 win over Seattle.

CHICAGO (AP) — Ernie Banks would love this. They're going to play two at Wrigley Field today. Or, at least, one and a-half.

The San Francisco Giants became the first team since 1986 to win such a protest filed with Major League Baseball, and will now get to resume a rain-shortened game the Chicago Cubs thought they had won. The game will resume Thursday at Wrigley with the Cubs leading 2-0 in the bottom of the fifth inning.

The game had been delayed more than 4 1/2 hours because of rain after the grounds crew couldn't put the tarp down quickly.

The game will resume at 4:05 p.m. (Central time) this afternoon. The playoff-contending Giants and Chicago have a regularly scheduled game set to begin three hours later.

CLEVELAND (AP) — Indians first baseman Nick Swisher is having surgery on both knees and is done for the season.

Swisher has underperformed after getting a four-year, $56 million contract from the Indians before last season. He's having arthroscopic procedures performed on both knees in Los Angeles. The club said he'll need 8 to 10 weeks to recover.

Before he was sidelined, Swisher was batting .208 with eight home runs and 42 RBIs in 97 games.

BOSTON (AP) — Former major league pitcher Curt Schilling says he's battling mouth cancer and blames 30 years of chewing tobacco use.

Schilling discussed details of his cancer on WEEI-FM in Boston. He announced he had cancer in February, but had not disclosed what kind.

Schilling is being treated at Brigham and Women's Hospital and the Dana-Farber Cancer Institute. He received seven weeks of chemotherapy and radiation treatments and is in remission. He says he's lost 75 pounds.