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.