Matt Holliday had four hits and drove in a pair of runs, Allen Craig belted a two-run homer and finished with three RBIs, as the Cardinals beat the Royals 8-2 on Saturday.

Up 1-0, Daniel Descalso started a string of five straight singles in the fifth for St. Louis, and RBI base hits by Jon Jay and Holliday knocked Royals starter Mendoza from the game. Kelvin Herrera came in and gave up another RBI single to Carlos Beltran, giving the Cardinals to a 4-0 lead.

Rafael Furcal added another run with a single in the sixth, and the Royals got two back in the bottom half on Alex Gordon’s run-scoring triple and Yuniesky Betancourt’s RBI groundout, but the Cardinals scored two more runs in the seventh inning, with Holliday doubling off reliever Greg Holland, and Craig belted his ninth homer of the season.