The Rangers are the top-scoring team in baseball despite averaging 3.5 runs over their previous 10 games. Texas was held to seven runs in dropping two of three to Seattle earlier in the week.
Cruz had a three-run double in a six-run first, then capped his big night with a 414-foot grand slam that landed in the upper deck in right.
"You dream to have those kinds of days," said Cruz, who also had an RBI single in the sixth and went 4-for-5. "It can't happen every day. When it happens, you should be happy and enjoy it."
Cruz also drove in eight runs against Toronto on July 22, 2011. His grand slam in the seventh was the fourth of his career and second of the season.
Cruz is the sixth player in Rangers history to drive in eight or more runs in a game. Ivan Rodriguez has the Rangers team record with nine on April 13, 1999, against Seattle.
"Some guys work hard to get to get that many RBIs in one month," Texas manager Ron Washington said. "(Cruz) did it one night. That's what he's capable of doing."
Toronto starter Brandon Morrow (5-3) was knocked out after recording just two outs in the first. The right-hander, who had two shutouts in his previous four starts, gave up six runs and five hits in the shortest start of his career.
The Blue Jays used four relievers, which included backup catcher Jeff Mathis, who pitched for the first time since he was in high school.
Mathis pitched a scoreless eighth, becoming the sixth position player in Toronto history to pitch.
"The biggest part was running in from the bullpen," Mathis said. "That was real weird."
Derek Holland (4-3) struck out a season-high nine in 7 1/3 innings. He allowed two runs and five hits.
Hamilton, who leads the majors in home runs, had gone 11 games without a homer before leading off the second with his first since May 12. He left the game in the seventh inning with a head cold.
"It was nice to break out like this," Texas second baseman Ian Kinsler said.
Edwin Encarnacion hit his 15th home run of the season for the Blue Jays, who have lost three in a row.
Morrow threw 44 pitches in the first inning and faced 10 batters before he was relieved by Carlos Villanueva.
Beltre had a two-run single and Cruz's bases-loaded double gave the Rangers a 5-0 lead.
Mitch Moreland's RBI single capped the scoring in the first, and Morrow was relieved one batter later after Kinsler doubled to center.
In four other road starts this season, Morrow had given up two earned runs in 28 2/3 innings.
"I'm just going to pretend that that game never happened," said Morrow, who cut off his postgame interview after taking only one question.
Mathis was the fifth Blue Jays pitcher of the game -- and the only one to not give up a run. He allowed a double and a walk in the eighth. Alberto Gonzalez flew out to end the eighth.
Hamilton's home run leading off the second landed in the second deck in right and gave him 50 RBIs this season. He became first player in club history to hit 19 home runs in the team's 46 games of the season.
Mathis was the first Blue Jays position player to pitch since Mike McCoy last June 11. ... Rangers C Mike Napoli was held out of the lineup with an upset stomach. ... Hamilton tied the club record with his 10th home run in May. ... Toronto 2B Kelly Johnson singled in the third to reach base in his 19th straight game. ... Pro golfer Jason Dufner threw out the ceremonial first pitch. Dufner leads the Colonial, which is being played in nearby Fort Worth, after two rounds.