The Blue Jays jumped to a 3-0 lead in the first, but the Angels battled back with the help of a two-run homer from Mark Trumbo in the second.
Los Angeles tied it at 4-4 in the fifth on the first of Calhoun's two sacrifice flies. Calhoun drove in Mike Trout in the eighth after Trout had reached on a walk and gone to third on a double by Josh Hamilton.
Starter C.J. Wilson (16-6) survived seven innings to get the win, allowing four runs on four hits with four walks and six strikeouts. Ernesto Frieri turned in a perfect ninth for his 32nd save.
The loss went to Steve Delabar (5-3), the fourth of five Toronto pitchers who served up the go-ahead run in the eighth.