Infante matched a career high as he drove in the first six runs of the day for Kansas City (12-12), including his second home run of the season in the seventh.
Alex Gordon followed the two-run shot by driving in his own pair with a double to center, putting the Royals up 8-2.
Mike Moustakas tallied the last run with an RBI double in the ninth.
Shields (3-2) struck out six Orioles while giving up two runs on three hits and two walks. Both runs came on a homer by Nelson Cruz in the sixth.
Ned Yost still brought in Greg Holland in the ninth with a seven-run advantage, as the closer gave up a run on two hits while striking out a pair to end the game.
Kansas City concludes their road trip 3-4 and will take Monday off before beginning a three-game home series with Toronto.