Josh Hamilton and David Murphy each had three hits for the Rangers, who snapped a four-game losing streak.
Rangers starter Rich Harden (3-1) hung around long enough to get the victory, allowing four runs on seven hits. He struck out one and allowed three walks.
White Sox starter Mark Buehrle (3-6) couldn't hold on to an early 4-0 lead. Buehrle was tagged for four runs on four hits in the sixth inning.
Rangers closer Neftali Feliz, loaded the bases in the ninth with one out, but earned his 14th save in 16 opportunities.