Seattle's Justin Smoak drilled a three-run home run in the top of the first inning, then Miguel Olivio hit a solo home run to give the Mariners a 4-0 lead in the fourth inning.
Detroit rallied back to tie the game at four when Miguel Cabrera hit a two-run home run in the sixth inning, but Chone Figgins doubled for Seattle in the seventh inning and the Mariners took the lead, 5-4, for good.
Rick Porcello pitched six and 2/3 innings, surrendering five earned runs on seven hits. He took the loss for the Tigers.
Charlie Furbush pitched the sixth inning, striking out two and earning the win. Brandon League gave up two hits in the ninth before earning the save.