The Rangers broke a 4-4 tie with their big inning, which helped them boost their lead in the American League West over Oakland to six games.
Moreland's double brought home the first run of the eighth and Hamilton finished off the inning with a two-run single.
Hamilton also had a two-run double in the first and delivered a sacrifice fly in the fifth. Adrian Beltre contributed a solo shot in the fifth, his fourth home run in the last two games.
Joe Mauer drove in the first run of the contest with a double in the first, touching off a series of events that cost the Twins their starting pitcher and manager.
When Mauer appeared in the third, he was hit by a pitch from Texas starter Roy Oswalt on a 3-0 count.
In the bottom half of the third, Minnesota's Scott Diamond threw a 3-0 pitch over the head of Hamilton and was immediately kicked out of the game. Minnesota manager Ron Gardenhire was also ejected for arguing Diamond's dismissal.
The win went to reliever Mike Adams (2-2), who struck out two in the eighth inning.
Jared Burton (1-1) was on the mound to start the eighth for the Twins and took the loss.