The win ended Boston's six-game losing streak.
Green also homered, as did Dustin Pedroia and Jason Bay for the Red Sox.
Detroit's Magglio Ordonez had a triple, two doubles, a run scored and an RBI and Placido Polanco had three hits, an RBI and a run for the Tigers, who had won four of five coming in.
Boston starter Brad Penny allowed three runs on six hits in six innings and Detroit starter Edwin Jackson gave up four runs on nine hits in four innings. Zach Miner (5-2) was charged with the loss.