The victory snapped a two-game losing streak on a cold night at Chicago's U.S. Cellular Field. Temperatures slipped into the lower 40s with wind chills in the 30s.
Carrasco (2-1) allowed one earned run on four hits while walking none as he improved to 1-1 against Chicago this season.
White Sox starter Hector Noesi (0-2) lasted 5 2/3 innings and departed with runners on first and third for left-hander Carlos Rodon, making his major league debut.
Rodon gave up a two-run single to pinch hitter Ryan Raburn in the sixth and allowed two more runs in the seventh.
Seven Cleveland pitchers combined for 15 strikeouts.