Los Angeles starter Jerome Williams gave up one hit over the first five innings and was coasting along with a 5-0 lead, but he gave up two-run homers to Nick Swisher and Mike Aviles that let the Indians back in the game in the sixth.
J.C. Gutierrez (0-3) relieved Williams in the seventh and gave up a leadoff home run to Carlos Santana that tied it and Bourn added his run-scoring single later in the inning to help Cleveland end a six-game losing streak.
Matt Albers (3-1) retired all four men he faced in the sixth and seventh innings to get the victory. Chris Perez struck out one in a perfect ninth for his 18th save.
The Angels built their 5-0 advantage thanks in part to a two-run single by Mike Trout in the second.