Suppan allowed four hits without a walk or strikeout before giving way to Jason Grimsley, Jeremy Affeldt and Nate Field. Affeldt allowed an unearned run in three innings before Field pitched a scoreless ninth for the save.
Sweeney hit a solo homer off Jeff Weaver in the second inning and Joe Randa gave Kansas City a 2-0 lead with an RBI in the seventh.
Weaver gave up just one hit in four innings but took the loss. Julio Santana allowed the decisive run and three hits in the seventh.
Damion Easley drove in Detroit's only run in the eighth.