CLEVELAND -- The Indians were held to five hits, but three of them were home runs, and Ubaldo Jimenez had his third 10-strikeout game in his past four starts as Cleveland beat the Kansas City Royals 4-3 Monday night.
Asdrubal Cabrera, Yan Gomes and Carlos Santana homered for the Indians.
Jimenez (11-9) pitched seven innings, allowing one unearned run. He struck out 10 and did not walk a batter. In his four-start hot streak, Jimenez has a 1.73 ERA with 34 strikeouts and five walks in 26 innings.
Chris Perez needed 27 pitches in the ninth inning to pick up his 23rd save. The Royals had runners at first and second and no outs, then second and third with one out but failed to score.
Ervin Santana (8-9) took the loss despite allowing just four hits in seven innings. He gave up four runs (three earned) and struck out seven without issuing a walk.
Cabrera, who came into the game mired in a 1-for-22 slide, gave the Indians a 1-0 lead in the second inning when he belted a two-out solo home run off Ervin Santana.
Cleveland scored its second run thanks to a hunch played by manager Terry Francona, who decided to start 20-year-old rookie infielder Jose Ramirez at third base. It was the first major league start for Ramirez, whose first at-bat resulted in a single to left field.
The next hitter, Drew Stubbs, worked the count to 3-2, and with Ramirez running on the pitch, Stubbs grounded out to third baseman Mike Moustakas. Ramirez, however, never stopped at second. He kept running to third, and first baseman Eric Hosmer's throw was wild for an error, allowing Ramirez to score.
Gomes' solo home run in the fifth inning gave Cleveland a 3-0 lead.
Kansas City cut it to 3-1 in the sixth inning. With one out, Alex Gordon hit a dribbler to third base that Ramirez fielded and threw wildly to first. Gordon wound up at second base with what was ruled a hit and an error.
One out later, Hosmer lined a single to right field scoring Gordon.
Cleveland got that run back in the seventh inning when Carlos Santana hit a drive off the right field foul pole. The ball was originally ruled foul by first base umpire Dana DeMuth, but after a brief video review by the umpiring crew, the call was reversed and Santana was awarded his 18th home run, pushing the Cleveland lead to 4-1.
Kansas City used the long ball to pull within one run in the eighth inning. Alcides Escobar greeted reliever Cody Allen with a double to left center field, and Escobar rode home on a booming home run into the right field seats by Gordon, his 18th homer of the season and 100th of his career, cutting the Cleveland lead to 4-3.
NOTES: Royals RHP Greg Holland picked up his 40th save of the season Sunday. Holland is the fourth pitcher in Royals history to have a 40-save season, joining Dan Quisenberry, Joakim Soria and Jeff Montgomery. ... OF Jarrod Dyson is the first Royals player in a decade to have back-to-back seasons of 30 stolen bases. Carlos Beltran did it from 2001-03. ... Indians OF Michael Brantley rejoined the team Monday after missing the previous three games to be with his wife, who gave birth to the couple's first child in Palm Beach, Fla., on Saturday. ... Cleveland RHP Justin Masterson remains sidelined with a strained oblique. There is no timetable for his return, but Francona said he wouldn't be shocked if Masterson pitched again before the end of the regular season.