Albert Pujols had four hits for the Angels, including two doubles, and scored three runs in the opener of a four-game series.
The Blue Jays loaded the bases in the ninth inning on Ernesto Frieri, but the Angels closer induced a double play from Edwin Encarnacion to end the threat and collect his 10th save of the season.
Former Angels catcher Jeff Mathis equalled his career high with four hits, including a home run, for Toronto.
Left-hander Brett Cecil (1-1), making his third start in Toronto's injury-depleted rotation after being called up from triple-A, left in the three-run sixth after Trout's two-run homer put the Angels up 8-6.
It was one of three homers against Cecil, who gave up 10 hits and eight runs in 5 1-3 innings.
Angels' right-hander Dan Haren (6-7) allowed six runs on seven hits over six innings, including a solo homer by Mathis and a three-run shot by Jose Bautista, his major league-leading 26th of the season.
Callaspo gave the Angels a 1-0 lead with two outs in the second with his fifth home run of the season.
The Blue Jays tied it in the bottom of the inning. Encarnacion led off with a walk, took third when Kelly Johnson ended a 0-for-13 drought with a double and came home on Yunel Escobar's grounder to short.
Mathis led off the third with his fourth homer of the season.
The Angels scored three in the fourth, two on Trumbo's 19th homer of the season that followed a leadoff double by Pujols.
Howie Kendrick then walked, took second on Callaspo's single and after a sacrifice bunt by Erick Aybar, scored on Peter Bourjos' sacrifice fly.
The Blue Jays got one back in the home fourth on a sacrifice fly by Rajai Davis that score Encarnacion from third.
Pujols doubled and scored on a single by Kendrick to put the Angels into a 5-3 lead in the top of the fifth.
But Bautista responded his 26th homer of the season with two on to put the Blue Jays into a 6-5 lead in the five.
Bautista's 14th home run in June, a club record for any month, scored Mathis and Colby Rasmus.
The Angels regained the lead in the sixth. Aybar bunted and reached second on Cecil's throwing error before Bourjos doubled to tie the game. Trout then stepped up and hit his eighth homer of the season to end Cecil's night.
LaTroy Hawkins replaced Haren in the seventh and allowed a run on a double by Mathis and a single by Brett Lawrie.
The Blue Jays had a chance to tie in the seventh but Rasmus was thrown out at home on Bautista's grounder to shortstop into a drawn-in infield.
After Pujols led off the ninth with a single against Casey Janssen, Trumbo, who finished with three RBIs, tripled him home to give the Angels a 9-7.
Notes: Attendance at Rogers Centre was 24,668. ... Right-hander Henderson Alvarez did some long-toss Thursday and appears on schedule to make his start Saturday. He left his win in Boston on Monday with stiffness in his elbow but was cleared to pitch after an MRI on Tuesday. ... Carlos Villanueva (2-0, 3.24 ERA) makes his first start of the season Friday against the Angels' Erwin Santana (4-6, 4.92 ERA).