The Indians fell behind by four early in the contest, but rallied to within one in the fifth when Jack Hannahan doubled home two runs and scored on a single by Shin-Soo Choo.
Cleveland sent nine men to the plate in the seventh while scoring five runs on six hits.
Jason Kipnes and Michael Brantley each had an RBI single before Santana delivered his sixth homer of the season.
Kipnis and Santana both drove in a run with a single in the ninth as part of Cleveland's 14-hit attack.
Esmil Rogers (1-2) got the win, working 1 2/3 hitless innings in relief of starter Justin Masterson. It was the first win for Rogers since the Indians obtained him from Colorado last month.
Kyle Farnsworth (0-2), in his 14th major league season, gave up Cleveland's go-ahead run in the seventh to take the loss.
Costly malfunction causes beer flood at Boston-area brewery
Megyn Kelly: Santa Claus and Jesus are both white men