Trevor Bauer (2-3) nabbed the victory as he allowed three runs on eight hits with four walks and six strikeouts in 6 2/3 innings. Carlos Carrasco pitched the rest of the game for his first career save.
Chris Iannetta drove in a pair of runs for the Angels, who have lost four of their last five.
Jered Weaver (7-6) came into the game 6-0 with a 1.64 earned run average in nine starts at Progressive Field, but he dropped this decision after giving up four runs on five hits and a walk in six innings.
Cleveland jumped out to a 2-0 lead in the first inning as Bourn led off with a single and Cabrera followed with his seventh home run of the season.
In the third, Bourn singled and Cabrera walked ahead of a Michael Brantley single for a 3-2 lead.
Los Angeles tied the game again in the fourth on a John McDonald sacrifice fly, but Santana led off the home half with his ninth home run of the year, a shot to right, for a 4-3 advantage.
The Angels had runners on second and third with two outs in the fifth, but Iannetta looked at strike three to end the frame.
Los Angeles got a leadoff walk from Raul Ibanez to start the eighth, but he was caught stealing as Iannetta struck out, and Carrasco set the Angels down in order in the ninth.