Two Seattle errors led to two unearned runs, helping the Indians win their third straight. The Mariners have lost three in a row.
Cleveland had a pair of four-run innings, with Hafner producing an RBI during both of them. His groundout in the first delivered Jason Kipnis from third and the Indians also scored runs in the inning on a passed ball and two throwing errors.
The Indians broke things open with a four-run fourth, an inning that included three doubles. One of them came from Hafner and brought home Kipnis with the second run of the frame.
Hafner added a solo homer in the sixth.
Ubaldo Jimenez (4-3) was the beneficiary of the outburst, getting the win by holding the Mariners to three runs on five hits in six innings.
Felix Hernandez (3-3) was charged with eight runs, six of them earned, on 10 hits in 3 2/3 innings. He has lost two straight starts, during which he has allowed 21 hits.