Nate Robertson (4-6) allowed three runs and eight hits in 6 1-3 innings for the win. Todd Jones pitched a scoreless ninth for his 11th save in as many chances.
Trailing 2-1, the Tigers scored three times in the fifth off Jose Contreras (6-4) to take a lead they wouldn't give up. Brent Clevlen, Curtis Granderson and Placido Polanco hit consecutive singles to lead off the inning, and Clevlen scored on center fielder Nick Swisher's error.
Two outs later, Cabrera singled to center to drive in Granderson and Polanco.
Clevlen's RBI single in sixth made it 5-2, and Magglio Ordonez added a run-scoring infield single in the seventh.
Robertson was replaced by Freddy Dolsi with one out and the bases loaded in the seventh. A run scored on Alexei Ramirez's run-scoring grounder and Orlando Cabrera flied out to end the inning.
Dolsi balked in a run, but Clevlen threw out Carlos Quentin at the plate from left field on Jim Thome's single in the eighth.
Thome gave Chicago a 1-0 lead with his 13th homer in the second inning.
A.J. Pierzynski's two-out RBI single in the third made it 2-0.
Jeff Larish's run-scoring single in the fourth put Detroit on the scoreboard, making it 2-1.
Contreras gave up six runs and 13 hits in six-plus innings, walking one and striking out one.
Copyright 2008 The Associated Press. All rights reserved. This
material may not be published, broadcast, rewritten or