Dye went 3-for-4 with a walk, Carlos Quentin homered and Mark Buehrle pitched seven innings to get the win for the AL Central leaders in their first game after the All-Star break.
Buehrle (7-8) allowed four hits, including a long three-run homer to Billy Butler that got Kansas City within 7-4 in the sixth. But the White Sox added two runs against the Royals' bullpen and maintained their 1 1/2-game lead over Minnesota.
The White Sox had 22 hits Sunday in a 12-11 loss at Texas in their final game before the break and then continued the hitting tear in the first against Zack Greinke.
Chicago's first eight batters reached Friday night with seven singles - including five straight at one point
- and a hit batsman.
Orlando Cabrera and A.J. Pierzysnki opened with singles and Greinke hit Quentin with a pitch near the left wrist to load the bases. Dye followed with a two-run single, Jim Thome and Paul Konerko had run-scoring singles and Nick Swisher singled to reload the bases. Joe Crede delivered another RBI single and then Alexei Ramirez had a bases-loaded sacrifice fly to make it 6-1.
Quentin hit his 23rd homer leading off the second for a 7-1 lead.
The only hit Buerhle allowed through the first five innings was a bloop RBI single in the first by Mark Grudzielanek.
But the Royals got singles from David DeJesus and Mark Teahen in the sixth before Butler broke an 0-for-12 streak with his third homer to make it a three-run game. Butler added an RBI single off Nick Masset in the eighth.