"We're pretty good at hitting mistakes," Detroit manager Jim Leyland said. "It doesn't matter who is pitching."
After trailing 6-2, Boston scored twice in the seventh and once in the eighth to pull within a run. With runners on first and third in the ninth against Todd Jones, J.D. Drew fouled out to end the game.
As it turned out, Granderson's catch proved to be as important as it was impressive.
The center fielder sprinted to his right, jumped in stride and snagged a ball -- with his left armpit over the wall -- to rob Wily Mo Pena of a homer in the fourth.
"If that's not a web gem, I've never seen one," Leyland said. "Nobody makes a better play than that."
Detroit heads into the All-Star break after winning five straight and 14 of 19, moving a game ahead of Cleveland in the AL Central. The Tigers beat Boston 9-2 in the series opener and 3-2 in 13 innings Saturday night after winning the last two games of a three-game series against the Indians.
"They seem to be hitting their stride," Matsuzaka said through an interpreter.
The Red Sox were a season-high 22 games over .500 on June 24, but have since lost eight of 13 overall and six in a row on the road.
"I'm not thrilled," manager Terry Francona said.
Boston still, however, has a double-digit lead in the AL East.
Matsuzaka (10-6) allowed six runs and 10 hits in five innings, which equaled his shortest start in his first major league season. He had given up just two runs in his previous four starts and hadn't lost since June 10.
"The problem was with my control," Matsuzaka said. "I felt I left a lot of my pitches in soft locations.
"I wasn't able to throw the fastball for strikes."
Sheffield hit his 21st homer in the first inning and Guillen's 14th followed Thames' drive over the center-field wall in the third.
Thames, who hit a grand slam in the series opener, turned one of Matsuzaka's mistakes into a 440-foot shot.
"I haven't seen any go out there like that," Leyland said. "When he hits them up like that, it reminds me of Mark McGwire to be honest."
In just 131 at-bats, Thames has 10 homers and might challenge Craig Monroe for the starting job in left field after the break.
Nate Robertson (5-6) allowed four runs and four hits in 6 1/3 innings. Boston scored two runs in the third inning off him on three walks, a hit batter and a sacrifice fly.
The Red Sox had runners on first and second with one out in the seventh, but Capellan got out of the inning with two flyouts.
Boston pulled within a run in the eighth after Drew walked, advanced two bases on a throwing error and scored on Lugo's double.
The Red Sox have a baseball-high six All-Stars and Detroit has five, plus Leyland, but just three of the 11 were in the lineup.
Red Sox left fielder Manny Ramirez was out of the lineup with what Francona called "intestinal turmoil," but was used as a pinch hitter in the eighth inning after the Tigers gave him antibiotics.
Detroit catcher Ivan Rodriguez, who had the game-winning hit Saturday night, didn't play until pinch-hitting in the eighth.
- Leyland, who will manage in the All-Star Game, said he knows who the AL's starting pitcher will be, but wouldn't reveal the decision.
- Matsuzaka gave up more than one home run only once before, on May 25 when Texas hit two home runs off him.
- Detroit committed a season-high five errors.
- Matsuzaka lasted five innings twice previously.
- Virgil Trucks, 90, and 80-year-old Joe Ginsberg were on the field before the game to honor Justin Verlander and Rodriguez. Verlander's no-hitter last month was the first by a Tiger at home since Trucks did it in 1952. Ginsberg and Rodriguez were the catchers in the two games.
- The Tigers drew their ninth straight sellout, extending a record in 6½ seasons at Comerica Park.
- Lugo was 3-for-3 with a double and home run.