Salvador Perez hit a scorching liner off the glove of third baseman Adrian Beltre for a single, allowing Jarrod Dyson to score the go-ahead run in the eighth inning and helping the Royals beat the Texas Rangers, 2-1, on Tuesday night in Kansas City, Mo., to keep them atop the AL Central by a half-game over Detroit.
Jason Frasor left runners on the corners in the eighth against his former team, and Aaron Crow worked around a two-out single in the ninth for his third save of the season.
The Rangers’ Derek Holland and counterpart Jeremy Guthrie pitched to a stalemate through seven innings before the Royals broke through against Michael Kirkman in the eighth.
Tigers 4, Indians 2 — J.D. Martinez hit a three-run homer off closer Cody Allen in the ninth inning, helping Detroit rally for a win in Cleveland.
Detroit’s comeback kept the Tigers on the heels of first-place Kansas City in the AL Central.
Phillies, 4, Braves 0 — Kyle Kendrick allowed only three hits in seven scoreless innings, Carlos Ruiz homered and drove in two runs, and Philadelphia shut out the struggling Braves in Atlanta.
One day after Cole Hamels and three relievers threw the first combined no-hitter in Phillies history, Kendrick and relievers Ken Giles and Antonio Bastardo were dominant in the three-hit shutout.
The Braves have lost three of four.
Orioles 5, Reds 4 — Bud Norris pitched six shutout innings, Nelson Cruz notched his career-high 91st RBI during a four-run first, and Baltimore beat Cincinnati at Camden Yards.
Jonathan Schoop homered for the Orioles, who extended their lead in the AL East to a season-high 9½ games. Baltimore endured two rain delays totaling more than two hours and withstood an eighth-inning grand slam by Jay Bruce to notch its seventh win in nine games.
Giants 12, Rockies 7 — Buster Posey homered, doubled twice, and drove in four runs, rallying San Francisco in Denver.
Posey’s solo homer in the sixth keyed a three-run burst as the Giants raced back from a 7-1 deficit to remain on the heels of the Dodgers in the NL West. He hit a two-run double in a six-run seventh.
Dodgers 4, Nationals 1 — Clayton Kershaw pitched eight strong innings for his major league leading 17th win to lift host Los Angeles.
The Dodgers (78-61) moved one game behind the Nationals (78-59) for the National League’s best record.
Blue Jays 8, Rays 2 — Jose Reyes hit a three-run homer, R.A. Dickey gave up two hits in seven innings, and Toronto beat host Tampa Bay.
Cardinals 6, Pirates 4 — Adam Wainwright earned his 16th win and matched his career best with three RBIs, carrying St. Louis to a victory at home.
Wainwright prevailed despite allowing three home runs to match his career worst.
Astros 8, Angels 3 — Jose Altuve had four hits for the second straight night, Brad Peacock threw 6⅓ solid innings, and host Houston beat Los Angeles.
Cubs 7, Brewers 1 — Jake Arrieta pitched six solid innings and Chicago handed visiting Milwaukee its seventh straight loss.
Mets 8, Marlins 6 — In Miami, David Wright broke out of his offensive woes with three hits and three RBIs to power New York.
White Sox 6, Twins 3 — Tyler Flowers’s first career multi-homer game lifted Chicago in 10 innings at Target Field.
Padres 2, Diamondbacks 1 — Cory Spangenberg’s first big league home run came on the first pitch he saw as a pinch hitter with one out in the ninth inning to lift host San Diego.
Mariners 6, Athletics 5 — Oakland rallied to score five runs in the eighth and ninth innings, but it wasn’t enough as Seattle edged the host Athletics.