The start of the game was delayed more than 2 1/2 hours because of heavy rain in Kansas City and play was stopped for 10-15 minutes when the Kauffman Stadium lights went out in the seventh inning. With the delays and a 3-hour, 19-minute game, the contest didn't end until after 1 a.m.
Hosmer singled and scored in a four-run Kansas City rally in the sixth inning but Cleveland tied the score with RBIs from Michael Bourn and Asdrubal Cabrera the next innings. Those runs came after the problem with the lights.
The Indians got two outs in the bottom of the seventh before Hosmer connected on an 0-1 pitch from reliever Cody Allen (3-1) for his eighth home run of the season. The homer was a shot to center than went more than 420 feet.
Will Smith (1-1) allowed Cleveland to tie the score in the top of the seventh but still came away with a win. Greg Holland had two strikeouts in the ninth and collected is 18th save.
The Royals scored in the first on Billy Butler's single but Cleveland went up 3-1 on Jason Kipnis' three-run, inside-the-park home run. His drive to left field went off the glove of Kansas City outfielder Alex Gordon, who crashed into the fence and hurt his hip. The extent of his injury isn't known.
Kansas City had its four-run rally in the sixth in which five singles and an error accounted for the scoring and a 5-3 lead.