The Rangers won their third in a row and maintained a three-game lead over the second-place Los Angeles in the American League West. Texas moved to 21 games over .500 for the first time in a dozen years.
It was a scoreless game heading into the bottom of the fourth but the Rangers sent 11 men to the plate in that inning while scoring eight runs on six hits. A fielding error by third baseman Lonnie Chisenhall extended the inning and made five of the runs unearned.
Hamilton walked to open the inning and scored on a double by Michael Young. Mike Napoli's one-out home run gave Texas a 3-0 lead.
David Murphy's fly ball to left accounted for the second out of the inning but singles by Yorvit Torrealba and Craig Gentry, along with Chisenhall's fielding error on a grounder by Ian Kinsler, loaded the bases.
Elvis Andrus drove in one run with an infield single and Hamilton, in his second at-bat of the inning, hit his grand slam to left.
All of that gave Derek Holland (14-5) an easy victory. He allowed a run on six hits in seven innings for his eighth win in nine decisions.
The loss went to David Huff (2-5), who gave up all the fourth-inning runs.
The Indians have lost seven out of nine.