John Danks (4-10) held the Rangers to two runs on eight hits in his second straight victory after breaking a long winless streak in his previous start. The left-hander walked one and struck out five.
Addison Reed finished up with his 35th save as the White Sox took 2-of-3 from the American League West-leading Rangers.
Jordan Danks unleashed a solo blast in the fourth, breaking a 2-2 tie, and Josh Phegley also went deep for Chicago.
Matt Garza (3-2) surrendered five runs (four earned) on seven hits over seven innings.
Jeff Baker hit a two-run homer for Texas.