Spencer Torkelson doubled in the go-ahead run in the seventh for the Tigers
Detroit starter Michael Lorenzen set down the first 17 batters he faced. He was charged with two unearned runs in 6 2/3 innings.
Gavin Sheets had a three-run double for the White Sox. Starter Jesse Scholtens gave up two runs and four hits in 4 2/3 innings
Detroit scored two runs in the second. Akil Baddoo smacked a one-out double and Jonathan Schoop reached on an infield single. Andy Ibanez drove home Baddoo with a single to right. Short drew a walk to load the bases before McKinstry hit a sacrifice fly.
Lorenzen recorded a pair of strikeouts in the fourth. A pair of groundouts and a fly out kept the White Sox off the basepaths in the fifth
Detroit left two runners stranded in the bottom of the fifth.
The first two batters in the sixth flied out before Romy Gonzalez ended Lorenzen's perfect game bid with a single to center. The inning ended when Tim Anderson grounded into a fielder's choice.
Lorenzen walked the leadoff batter in the seventh, Andrew Benintendi. Yoan Moncada followed with a single but Lorenzen responded by setting down the next two batters, as Andrew Vaughn popped out and Yasmani Grandal struck out.
Jason Foley (2-1) replaced Lorenzen and Jake Burger reached on second baseman Ibanez's throwing error. Sheets then cleared the bases with a long fly off the center field wall to give Chicago a 3-2 lead.
It didn't last long as McKinstry tied it with a one-out homer in the bottom of the seventh off Joe Kelly (1-2). Greene and Torkelson followed with doubles to deep center. Torkelson advanced to third on a wild pitch and scored on Eric Haase's single.
Detroit scored two insurance runs in the eighth on Schoop's leadoff double and Short's homer.
--Field Level Media