The Red Sox lost their third in a row and have dropped eight out of nine.
Cleveland built a 7-1 lead through three innings and made things easy for starter Derek Lowe (5-1).
Lowe gave up nine hits, but only two runs through six innings. Four relievers combined to allow just one hit the rest of the way.
Hannahan hit a two-run homer during a three-run second and the home run by Kipnis ignited a four-run third. Michael Brantley contributed a two-run double in the third and went 4-for-5.
Josh Beckett (2-4), who had not appeared in 12 days while he recovered from a pulled muscle, was roughed up for seven runs on seven hits in 2 1/3 innings. Beckett had drawn criticism last week for playing golf while missing his turn in the rotation.
Boston has lost six straight home games for the first time in two seasons.
Texas principal bans speaking Spanish, stirs controversy
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'