Chicago had a six-game winning streak come to an ugly end. Texas failed to score in only two innings and came up with five homers -- one of them an inside-the-park dash by Ian Kinsler.
After Texas took a 4-0 lead in the second, the White Sox responded with three in their half of the inning. The Rangers, however, kept on scoring and Chicago could not keep up.
Kinsler's home run came in the fourth inning, Adrian Beltre hit a solo shot in the fifth and Mitch Moreland contributed a two-run blast in the eighth.
Texas won its fourth straight and boosted its lead over Oakland in the American League West to 3 1/2 games.
Martin Perez (7-3) overcame one rough inning to get the win, eventually giving up four runs on eight hits in seven frames.
Texas roughed up Chris Sale (9-12) for eight runs on eight hits in seven innings.