The Rangers produced 14 hits, eight of them during a nine-run fourth.
Beltre hit a two-run homer as the second batter of the fourth and had another two-run shot when he came up with two away in the frame. Both of those home runs were hit with Josh Hamilton aboard.
Moreland's grand slam was the seventh of eight consecutive hits delivered by the Rangers to start the fourth.
Beltre hit a solo homer in the first. He became the 57th player in major league history to hit two home runs in one inning, and the second to have done so this season.
Kendrys Morales accomplished the feat for the Los Angeles Angels July 30 in a 15-8 win over Texas.
Derek Holland (8-6) was the beneficiary of the offensive show, getting the win after giving up three runs on five hits over seven innings.
Tommy Hunter (4-8) was charged with eight of the runs on eight hits in three-plus innings. He lost his fourth straight decision.