After losing six games in a row, the Angels have managed back-to-back victories.
Toronto had a 5-4 advantage heading into the eighth, but Los Angeles came from behind against Steve Delabar (5-2).
Chris Nelson opened the eighth with a double and scored when J.B. Shuck tripled on the first pitch he saw from Delabar.
Calhoun came up one out later and delivered a two-run, go-ahead homer. He was playing in his 27th big league game, six of which have come this season. He drove in the second and third runs of his career.
Toronto had taken the lead with a three-run sixth that included a two-run homer by Jose Reyes.
The win went to Dane De La Rosa (5-1), who walked one and struck out one while working the top of the eighth.
Ernesto Frieri survived a one-out double in the ninth to pick up his 26th save.