The Tigers scored four runs in the sixth inning, one in the seventh and two in the eighth to take a 8-4 lead that they would not relinquish.
Brennan Boesch went 4-for-5 and hit a solo home run in the seventh inning. Jhonny Peralta went 3-for-4 with a double and a triple.
Rick Porcello pitched five innings and got the win for the Tigers, with nine hits, four runs and five strikeouts. He improved to 4-4 on the season. Matt Garza (2-5) got the loss for the Cubs.
The victory comes after losing the first game of the series 4-3 on Tuesday. It ends Chicago's four game home winning streak.
Game 3 is Thursday at 2:20 p.m. ET.