Jim Rice drove in five runs with four hits in Cleveland and Carl Yastrzemski hit his 440th major league homer as Boston won its 12th in 15 games.
"Right now, I'd say he (Rice) is about three-quarters healthy," Manager Ralph Houk said. "He's not hurting like he was, though."
Rice has had a pulled hamstring in each leg and, in late August, spent several days in traction with back spasms. Despite that, he is hitting .316 with 85 runs batted in.
Said Yastrzemski, "He's just awesome. He's got to stay awesome for us the next few weeks."
Mike Torrez (8-8) yielded all three Cleveland runs and six hits in 5 2/3 innings before Bob Stanley relieved and held the Indians to four hits in getting his 13th save. Torrez had not won since July 25.
Jerry Remy led off the game with a walk, Dwight Evans singled and Rice hit his 21st homer, a drive to center off Lary Sorensen (10-12).
Evans singled with two out in the second and scored when Rice doubled off the fence in center. Yastrzemski singled to score Rice and finish Sorensen.
The Red Sox got two more runs that inning, for a 7-0 lead, on Wade Boggs' single and a throwing error by third baseman Toby Harrah on Dave Stapleton's grounder.
Alan Bannister singled in Cleveland's first run in the third and Andre Thornton hit his 30th homer with a man on in the sixth, giving him 106 RBI.
The Red Sox closed out the scoring in the eighth on Rice's RBI single and Yastrzemski's two-run homer, his 14th and first since July 29.