KANSAS CITY, Mo. — Chris Sale outlasted James Shields in a duel of All-Star pitchers, Alexei Ramirez stayed hot by driving in two runs with a single and a double, and the White Sox pulled away for a 5-1 victory against the Kansas City Royals Sunday at Kauffman Stadium.

Sale (2-0) pitched eight scoreless innings, allowing four hits and one walk and striking out six. Going into the game, the Sox had supported their ace left-hander with one run over his previous five starts against the Royals.

Ramirez drove in the only run against Shields (0-1) with a two-out infield hit that glanced off shortstop Alcides Escobar’s glove in the seventh inning, allowing Conor Gillaspie (two doubles) to score and break a scoreless tie.

The Sox broke it open in the ninth inning against the Royals bullpen. After Ramirez doubled in a run and Tyler Flowers drove in two with a single up the middle.

Sale was issued a warning from plate umpire Greg Gibson after throwing an inside pitch to Omar Infante leading off the sixth inning. It came after Shields hit Jose Abreu with a pitch in the fifth inning, possibly payback for Abreu inadvertently stepping on Royals first baseman Eric Hosmer’s foot on a close play at first in the fourth. Both benches were warned after Sale’s inside pitch to Infante.

Sox closer Matt Lindstrom, who had blown his last save opportunity against the Twins on Thursday, allowed one run on three hits in the ninth. Lindstrom did not earn a save.

The Sox (3-3) open a three-game series against the Colorado Rockies in Denver on Monday night.