CLEVELAND -- Justin Masterson enjoyed Cleveland's eight-run eighth inning as much as his first career shutout.
"It was great to see all those runs; you can never get too many," Masterson said after he blanked a potent Boston lineup that came in leading the AL in scoring.
Hafner's 10th career slam -- first since May 7, 2007 -- turned a tight game into a rout. Red Sox relievers Boof Bonser and Joe Nelson combined to throw 60 pitches to 14 batters, walking five and allowing seven hits in the eighth.
"When you walk that many, you're asking for trouble," Boston manager Terry Francona said.
Masterson (2-5) faced the Red Sox for the first time and earned his second straight win after a long losing streak. The right-hander struck out six, walked two and allowed a pair of harmless one-out singles -- to Victor Martinez in the third and J.D. Drew in the fifth.
It was the first complete-game shutout by an Indians pitcher against Boston since Jack McDowell on April 15, 1996.
"Justin was fantastic," Indians manager Manny Acta said. "He had a good sinker, a very good slider and threw strikes."
Clay Buchholz (8-4) had a six-start winning streak snapped as Boston lost for the second time in its last 11 road games. The right-hander allowed three hits over seven innings and trailed 3-0 when Bonser took over.
Masterson was 0-11 over 17 starts from Aug. 25 until beating the Chicago White Sox on June 4. In that win, he walked a season-high six over 5 2/3 innings in a 10-1 victory.
Masterson was sent from Boston to Cleveland with two minor league pitchers for Martinez, an All-Star catcher, just before last year's trade deadline.
"All the things we used to brag about when he was in our uniform, he showed it tonight," Francona said. "He maintained his velocity from the first pitch to the last. That's about as good a game as you can pitch."
Masterson tried not to force things against his former teammates.
"You get a little excited, but once you get on the field, it is game time," he said. "Half the time, the battle for me is with myself."
Francona told Masterson before the game that he hoped the 25-year-old wins every one of his starts after the Red Sox leave town.
"Sometimes, I guess I'm not very good at listening," Masterson said.
Despite Boston's first loss in its last eight games against Cleveland, Francona still likes Masterson.
"I think there are a lot of ties for No. 1, but how can you be a nicer kid than him?" Francona said. "It's about impossible. He's such a good kid. That will never change."
Trevor Crowe scored three times for Cleveland, which improved to 4-13 in its last 17 home games.
Crowe singled and tripled his first two times up. He scored in the first on a sacrifice fly by Jhonny Peralta, ending Buchholz's scoreless streak at 18 innings.
Crowe scored in the third as Austin Kearns grounded into a double play.
Peralta singled to start the fourth, took second on a wild pitch, third on a groundout and scored on another wild pitch.
Crowe walked and eventually scored on a broken-bat single by Russell Branyan off Bonser in the eighth. Peralta followed with another broken-bat RBI single off Nelson before Hafner delivered.
Hafner's six grand slams in 2006 tied a major league record. ... Boston RHP Daisuke Matsuzaka, who won the series opener Monday, was sent back to the team's hotel with the stomach flu. ... Red Sox 2B Dustin Pedroia is 0 for 11 in the series and 17 for 101 (.168) in his last 25 games. ... Boston is 17-4 against Cleveland since trailing the Indians 3-1 in the 2007 AL championship series. ... Acta met Cleveland's No. 8 draft choice, high school catcher Alex Lavisky, and gave him a gentle but positive sales pitch: "I can't talk to you about money, whether to go to college or any of that, but I can tell you the people in this organization are great baseball people." Lavisky, of suburban Lakewood, was thrilled to meet Cleveland first-base coach and former catcher Sandy Alomar Jr. ... Boston OF Jacoby Ellsbury (broken ribs) was examined by Dr. Lewis Yocum in Los Angeles. "It sounds like Dr. Yocum, at least preliminarily, thinks he needs a little more rest," Francona said. Ellsbury has appeared in only nine games.