PITTSBURGH – Jeff Locke ran his personal winning streak to eight games, Pedro Alvarez hit a three-run homer and the Pittsburgh Pirates hung on Wednesday night to beat the Philadelphia Phillies, 6-5.

Locke (8-1) was scored upon for the first time in four home starts but extended his unbeaten streak to 16 outings. Locke, who hasn’t lost since his first start of the season, allowed two earned runs on seven hits and three walks over 52/3 innings.

The Pirates took the lead with a four-run fifth punctuated by Alvarez’s 21st home run.

Domonic Brown’s two-run homer with two outs in the ninth pulled the Phillies within one, but Jason Grilli struck out Delmon Young to seal his NL-best 28th save.

John Lannan (1-3) of Philadelphia fell to 1-5 in his career against the Pirates, getting tagged for four runs on 11 hits and three walks in five innings.

BREWERS 4, NATIONALS 1: Kyle Lohse tossed eight sharp innings on short rest and Milwaukee won at Washington.

Lohse (4-6) allowed one run and four hits, and had a season-high seven strikeouts against the eager-swinging Nationals, who barely avoided back-to-back shutouts and fell back to .500. Bryce Harper, in his third game back from a knee injury, went 0 for 4 with two strikeouts and dropped a ball in left field for the second consecutive game.

MARLINS 6, BRAVES 3: Ricky Nolasco tossed seven strong innings amid persistent trade rumors, Justin Ruggiano hit a three-run homer and Miami won at Atlanta.

Manager Mike Redmond said before the game that Nolasco has not been affected by trade speculation and Nolasco supported that claim by giving up two runs on six hits.

AMERICAN LEAGUE

TIGERS 6, BLUE JAYS 2: Max Scherzer worked into the seventh inning to become the first pitcher since Roger Clemens in 1986 (14-0) to get off to a 13-0 start, leading Detroit at Toronto.

Alex Avila hit a three-run homer and Victor Martinez belted a solo shot as Detroit beat Toronto for the eighth time in 10 meetings.

ORIOLES 4, WHITE SOX 2: Chris Davis hit his major league-leading 32nd homer and added a tiebreaking two-run double to lead Baltimore at Chicago.

Scott Feldman pitched six solid innings in his debut for the Orioles, who held on to win for the fifth time in six games after the White Sox threatened against Jim Johnson in the ninth.

ASTROS 4, RAYS 1: Chris Carter homered twice, including a go-ahead three-run shot in the seventh, to back seven strong innings from Bud Norris and give Houston a home win.

The victory broke a five-game skid for the Astros, who had been shut out in their last two games.

YANKEES 3, TWINS 2: CC Sabathia won his 200th career game to stretch his winning streak over Minnesota to nearly six years, and Robinson Cano hit a tying two-run double to spark New York at Minneapolis.

Cano fueled the three-run sixth against Twins starter P.J. Walters (2-5), who was pitching for his job. Trevor Plouffe homered against Sabathia (9-6), but Sabathia finished seven innings with seven hits and three walks, striking out nine.

MARINERS 4, RANGERS 2: Kyle Seager hit a two-run homer in the 10th inning, and Charlie Furbush of South Portland (2-4) pitched 12/3 scoreless innings at Arlington, Texas.

Michael Saunders walked on a full-count pitch with two out before Seager connected against Robbie Ross (4-2) for his third hit of the game. Seager’s 12th homer landed in the first row of seats in right field.