The Indians handed Los Angeles its fifth straight loss, overcoming a two-run deficit in the seventh and then producing the game-winner in the ninth against David Carpenter.
Carpenter (0-1), called up from Class AAA Salt Lake City after the start of the season for his first stint in the majors, was the fifth Los Angeles pitcher of the night.
He gave up a leadoff double to Cunningham in the ninth and, one out later, Jason Kipnis singled to left. Cunningham was held at third on Kipnis' hit, but trotted home on Cabrera's single to right.
Los Angeles wasted six shutout innings from starter Jered Weaver, who was trying for his fourth straight win. Weaver allowed seven hits, walked four and struck out eight while throwing 115 pitches.
Weaver left the game with a 2-0 lead, but reliever Hisanori Takahashi gave up a leadoff single to Casey Kotchman in the seventh and an RBI double to Michael Brantley. Kevin Jepsen replaced Takahashi and surrendered a single to Kipnis that brought home Brantley with the tying run.
Justin Masterson pitched into the ninth for the Indians, but gave way to Vinnie Pestano after walking two of the first three batters in that inning. Pestano (1-0) struck out both men he faced to end the threat and became the winner when the Indians produced their run in the bottom half of the inning.