Kole Calhoun went 4-for-5 with a home run, two RBI and three runs scored, while Howie Kendrick also homered and drove in two for the Angels, who had lost four of five coming in.
Matt Shoemaker (4-1) lasted eight innings and gave up two runs on five hits with a walk and 10 strikeouts.
Lonnie Chisenhall homered, while Carlos Santana and David Murphy each drove in a run for the Indians, who had a 10-game home winning streak snapped. Josh Tomlin was beat up for six runs -- five earned -- on 11 hits over 5 1/3 innings.
The Angels got a run in the first on Albert Pujols' run-scoring groundout, but the Indians answered in the home second as Murphy's groundout allowed Santana to cross the plate.
Chisenhall's solo home run in the fourth inning gave the Indians a 2-1 lead, but the Angels rallied in the fifth.
David Freese singled and Raul Ibanez made it to first on an Asdrubal Cabrera error. Calhoun singled home the first run to tie the game, and Trout followed with a homer over the right field wall for a 5-2 lead.
Kendrick's leadoff home run to start the sixth increased the margin to 6-2.
Trout's second home run of the game gave the team a 7-2 lead as he led off the seventh with his 16th of the season.
Los Angeles added to its lead in the ninth as Calhoun led off with a homer and Kendrick later doubled in Pujols for a 9-2 advantage.
Santana's RBI single in the ninth inning after an 11-minute rain delay capped the scoring in the game.