"That takes people like me, two, maybe three weeks, to get six," Dunn said.
Dunn hit a go-ahead, two-run homer off Justin Verlander in the eighth and he hit an RBI single in his second at-bat of the seven-run inning in which the White Sox broke open a 1-1 game.
The last-place White Sox, who had lost four straight, finished with a season-high 23 hits and a season high in runs.
"It's a good feeling to get a win -- those have been few and far between -- but just kind of the way we did it," Dunn said.
Rios became the 32nd AL player to have six hits in a nine-inning game and the first in franchise history since Lance Johnson pulled off the feat in 1995 at Minnesota.
"It's been the most fun we've had in a quite a while," Rios said. "We've had some tough times, but it shows we haven't quit."
Dayan Viciedo's second homer of the game helped the White Sox score seven runs in the eighth inning, and they scored three more runs in the ninth to surpass a season high for scoring.
Miguel Cabrera hit his 29th homer, an impressive blast to left-center, in the eighth inning to give him a major league high 92 RBI and .363 batting average.
He broke the franchise record for homers before the All-Star Game, surpassing the total Cecil Fielder had at the break in 1990 during his 51-homer season.
In the top of the eighth, Cabrera appeared to hurt his back by leaping for a high throw.
"He's not 100 percent and that's why he's not going to take part in the home run contest," Tigers manager Jim Leyland said. "I talked to him and we talked to the trainers, and on the trainer's advice, he's not going to do it. It would be pretty ridiculous to risk that."
Verlander (9-6) gave up a season-high 12 hits, five runs and struck out three to match a season low in seven-plus innings.
"Just one of those days that happens at this level, at this time of the year," he said. "Felt good, but just wasn't able to execute there in the eighth."
Rios singled in the first, tripled in the third and also singled twice in the eighth inning. He also singled in the fifth and ninth innings.
"He's as good as anybody in this league," White Sox manager Robin Ventura said. "Tonight is indicative of that. He's hitting and running the bases great."
Rios hit his first single in the eighth inning and stole second and scored on Dunn's 24th homer that put the White Sox ahead 3-1.
The White Sox followed with two straight singles to end Verlander's night after 112 pitches. The All-Star won his previous start, pitching seven scoreless innings in a win over Toronto, after giving up 12 runs in his previous three outings.
Jose Quintana (4-2) gave up three runs and six hits over eight innings, winning for the first time since May 21.
"I'm really happy for Q," Dunn said. "He's pitched so good for us, and we just haven't been able to score runs. Obviously, we haven't scored runs for all our pitchers, but him and [Chris] Sale for sure."
Viciedo had the first multihomer game of his four-year career. His second home run, a three-run shot, came on the second pitch Al Alburquerque threw in an outing that didn't last an inning.
Alburquerque retired just two batters and gave up three runs and four hits.
Phil Coke replaced Alburquerque with two outs, and gave up another hit.
Quintana didn't have much trouble keeping the AL Central-leading Tigers quiet at the plate.
Verlander stranded runners at second and third by striking out Dunn in the fifth. In the home half, Tuiasosopo sent a 1-2 pitch over the left-field wall to give Detroit a 1-0 lead.
Viciedo hit a two-out, game-tying homer in the sixth.
The White Sox had a runner on in the seventh, and wasted a chance to score a go-ahead run because Alejando De Aza ran toward second when Alexei Ramirez popped up in foul territory to Prince Fielder, who threw the ball to Verlander at first base for a double play.
Detroit's Don Kelly hit a solo homer in the ninth.
- Detroit put 2B Omar Infante on the 15-day disabled list and Perez, recalled from Double-A Erie, started in his place. Infante hasn't played since last Wednesday, when he was hit hard by Toronto's Colby Rasmus, who was sliding into second base. He is expected to be OK after the All-Star break.
- White Sox RHP Jake Peavy, on the DL since June 6 with a broken left rib, pitched in a simulated game on Tuesday.
- Detroit DH Victor Martinez extended his hitting streak to 11 games.
- The game started after a 38-minute rain delay.