NEW YORK (AP) -- Jonathon Niese hit an RBI double to provide himself some much-needed run support, and the New York Mets took advantage of two Dodgers miscues to end Zack Greinke's remarkable runs-allowed streak and beat Los Angeles 5-3 Thursday night.
Juan Lagares had a go-ahead RBI single in the seventh and Niese (3-3) pitched seven sharp innings for New York, which won for just the sixth time in 20 games this month and avoided a three-game sweep.
Rookie Eric Campbell, playing his first career game in left field, doubled Yasiel Puig off second base after making a spectacular diving catch in the eighth to preserve the Mets' lead.
The dynamic yet, at times, frustrating Puig made a sensational catch of his own on a sinking liner to right-center that was so good it elicited a warm ovation from the 23,416 in attendance. But he made two baserunning mistakes that could have cost the Dodgers runs.
Greinke's stretch of 21 straight starts allowing two or fewer runs ended. A mark that hasn't been matched since at least 1914 was done in by some sloppy play.
Dodgers center fielder Matt Kemp bobbled Curtis Granderson's drive in the first inning to right-center, allowing Granderson to take third base on a double. Granderson then scored on Campbell's sacrifice fly.
In the fifth, third baseman Justin Turner failed to glove Daniel Murphy's slow grounder that allowed Niese to score for a 3-1 lead.
Niese reached on a well-struck RBI double to right-center following Anthony Recker's double to a similar spot.
Greinke was lifted after five, yielding four hits, three runs -- one earned -- two walks and four Ks. He has allowed two earned runs or fewer in 22 games.
Niese then walked Chone Figgins, playing in place of Dee Gordon, to start the sixth. Figgins advanced to second on Puig's grounder to third when Murphy, the second baseman, dropped Wright's force attempt -- the call was upheld by replay. But Niese escaped unscathed when Puig ran into an out on an infield fly gone awry.
Hanley Ramirez hit a high popup to second base. Murphy backed up under the ball but appeared to lose it in the lights. When the ball fell, Murphy hesitated and Puig jogged into second. Apparently thinking he was forced out, Puig wandered off second and was tagged out for the double play.
The Dodgers tied it in the seventh, though, when Turner hit his first homer with the Dodgers after spending parts of four seasons with the Mets.
Lagares' RBI single off Chris Perez (0-2) s gave the Mets back the lead in the seventh. Granderson tripled in a run in the eighth for a 5-3 lead.
Niese had received just five runs of support total in his previous four home starts. The left-hander has not allowed more than three earned runs in 12 starts.
Jenrry Mejia pitched the ninth for his second save.
RANGERS 4, MARINERS 3
ARLINGTON, Texas -- Nick Tepesch won for the first time in more than 10 months, Shin-Soo Choo hit a tie-breaking home run, and Texas defeated Seattle.
Robinson Cano hit a two-run homer for Seattle.
BLUE JAYS 6, RED SOX 4
BOSTON -- Edwin Encarnacion had two homers for the second straight game, and Toronto sent the Red Sox to their sixth consecutive loss.
ROYALS 3, WHITE SOX 1
KANSAS CITY, Mo. -- Jeremy Guthrie, Wade Davis and Greg Holland combined on a four-hitter and Kansas City rallied in the eighth inning to avoid being swept in a three-game series.
The White Sox had scored 14 runs and hit five home runs in the first two games.
ATHLETICS 3, RAYS 2
ST. PETERSBURG, Fla. -- Brandon Moss hit a solo homer for Oakland's only hit and the Athletics took advantage of the sloppy Rays.
ANGELS 2, ASTROS 1
ANAHEIM, Calif. -- Jered Weaver pitched a two-hitter for his first complete game in nearly two years and Albert Pujols hit a go-ahead home run in the sixth for Los Angeles.
Collin McHugh (2-3) lost his third straight decision over four starts despite allowing just two runs and four hits in seven innings.
BREWERS 6, BRAVES 1
ATLANTA -- Mark Reynolds hit a first-inning grand slam, Kyle Lohse combined with Francisco Rodriguez on a five-hitter and the Brewers ended a four-game losing streak.
Reynolds snapped a 0-for-12 streak with his ninth homer.
MARLINS 14, PHILLIES 5
MIAMI -- Marcell Ozuna hit a grand slam and drove in five runs to help power Miami.
Phillies starter Kyle Kendrick (0-5) came into the game with a 10-game winning streak against the Marlins, but lost his 10th consecutive game overall.
YANKEES 4, CUBS 2, 13 INNINGS
CHICAGO -- Brendan Ryan scored on a wild pitch before John Ryan Murphy capped a two-run 13th inning with an RBI single, and New York beat the Cubs after Chicago wasted another dominant start by Jeff Samardzija.
PIRATES 9, ORIOLES 8
PITTSBURGH -- Tony Sanchez's tiebreaking single scored Starling Marte in the bottom of the seventh to put Pittsburgh ahead to stay.
Nelson Cruz hit his 14th homer of the season and drove in three runs for the Orioles. Nick Markakis, Chris Davis and JJ Hardy had two hits and one RBI apiece but Baltimore left 10 men on base and Ryan Webb allowed Sanchez's single to right in the seventh shortly after the Orioles had rallied to tie the game.