Cain collapsed to the ground and writhed in pain after the ball struck him around the right knee cap. He remained on the ground for several minutes while being examined by a team trainer. Cain briefly remained in the game, but struggled to get down the first-base line after grounding out to White Sox third baseman Mike Olt.
Cain, who was 0-for-4 Wednesday before being forced out by the injury, was replaced in center by Jarrod Dyson.
Cain is batting .303 with 16 homers and 28 stolen bases this season.
The Royals clinched the AL Central last week for their first division title since 1985.
Information from The Associated Press was used in this report.