The win snapped a three-game losing streak and a four-game losing streak against the Tigers.
"I think more importantly it was a team win tonight," said Conor Gillaspie, who went 2-for-4 with two RBIs. "We had so many guys contribute in so many different ways and, obviously, some great defensive plays all around.
"It feels good. Obviously, we have three pretty tough arms going in the next three games, so it's going to take the same grinding and the same competing on offense and defense."
Detroit, which sits 3 1/2 games ahead of the White Sox in the American League Central, has Justin Verlander, Drew Smyly and Max Scherzer scheduled in the final three games of the series.
But the way the White Sox swung the bats on Monday, it may not matter.
Jose Abreu went 2-for-4 with a two-run homer and Gordon Beckham went 3-for-5 with a run scored and one RBI. Throw in Gillaspie and lead-off hitter Adam Eaton (2-for-5 with a run scored and one RBI) and the top four hitters had a combined nine hits.
No hit was louder than Abreu's two-run shot, which snapped a 1-for-17 stretch. The Cuban rookie has 18 homers and 49 RBIs, despite missing two weeks on the disabled list. He's has bad stretches before, but finds a way to not let them fester.
"It's been impressive," White Sox manager Robin Ventura said. "But again, I don't look at him as a normal rookie. He's played enough and he's old enough and he's talented enough. You don't treat him like a normal rookie because he's a player, a good hitter.
"He's just getting his swing back. … When he hits it on the barrel, it goes a long way."
Hector Noesi (2-4) got the win despite giving up three home runs. He allowed four runs on seven hits in 5 2/3 innings.
Rick Porcello (8-4) took the loss for Detroit.
"It was a struggle from the get-go," Porcello said. "It was in and out for the majority of the night, and just couldn't find any consistency in executing pitches. We face these guys a lot. They know what you're going to do and when you're not on point, they're going to get all over it."
Victor Martinez went 2-for-4 with a two-run homer and Miguel Cabrera and Eugenio Suarez added solo homers for the Tigers.
The White Sox jumped on top in the bottom of the first as Eaton led off with a triple and scored on a Beckham single to make it 1-0, and added a run in the third.
The Tigers hit it a couple of solo homers to tie the score. Cabrera connected for a 431-foot blast in the fourth and Suarez added another solo shot in the fifth to make it 2-2.
The White Sox jumped back on top in the bottom of the fifth -- in a big way.
With one out, Beckham doubled and Gillaspie singled to drive him in for a 3-2 lead. Abreu then followed with a long homer to left-center to make it 5-2.
The slugfest continued in the sixth as Cabrera singled with one out and Victor Martinez followed with a two-run shot to pull Detroit to within 5-4.
The White Sox got one of the runs back in the bottom of the sixth as Eaton singled to drive in Alejandro De Aza, who led off the inning with a bunt single and advanced to second on a throwing error by Porcello.
"I think that was as close to a boxing match as you can get," Eaton said. "It seemed like we'd score a run, they'd score one, we'd score two, they'd score one.
"Grinding it out, I wouldn't have a baseball game any other way. That's the way it's supposed to go."
In the ninth, the White Sox were back against the ropes. Moises Sierra lost Austin Jackson's liner in the lights, allowing Jackson to reach second. Alex Avila then sent De Aza to the wall in left for a run-scoring double. After Suarez flied out to right, advancing pinch-runner Rajai Davis to third, Ronald Belisario (sixth save) struck out Ian Kinsler and induced a game-ending groundout from pinch-hitter Torii Hunter.