Salvador Perez hit a go-ahead three-run double in the eighth while Lorenzo Cain hammered a grand slam as the Kansas City Royals defeated the Cleveland Indians, 10-7, to win the three-game series in front of 16,792 fans at Kauffman Stadium.
Eric Hosmer added a two-run homer, George Kottaras recorded a solo shot while James Shields lasted 5 1/3 innings, allowing five runs on nine hits with two walks and three strikeouts for the Royals (40-42).
Hosmer now has eight homers in his last 19 games after tallying just one long ball in his first 61 games. His 7th-inning home run off Joe Smith was calculated at 431 feet, putting his nine-homer average at 421.7 feet, the third longest in the league.
Luke Hochevar (2-1) pitched a scoreless eighth to grab the win while Greg Holland tossed a perfect ninth for his 19th save this season.
Indians right-hander Ubaldo Jimenez opened his outing with five scoreless innings but unraveled in the sixth when he gave up a grand slam to Cain. He was charged with four runs (three earned) on three hits with five walks and three strikeouts in five -plus frames.
Drew Stubbs homered and had four RBIs for the Indians (45-40), who wrapped up an 11-day trip through Baltimore, Chicago and Kansas City with a 7-4 record.
The Indians raced to a 5-0 lead when Michael Brantley hit an RBI single in the first before Stubbs hit a two-run shot in the second and a two-run single in the sixth.
However, Jimenez walked the first two batters and loaded the bases with a throwing error. Then, Cain then sent a 3-2 pitch sailing over the center-field wall for his first career grand slam before Kottaras hit a homer of his own to to tie the score at 5-5.
Hosmer added a two-run homer in the seventh and Perez sealed the victory with a three-run double in the eighth.