St. Louis produced 15 hits while winning its fourth in a row. Shelby Miller (4-2) gave up a lone run on seven hits in six innings to get the win.
Holliday had three hits and scored along with Yadier Molina in the fifth on a double by Jon Jay. The Cardinals also tallied twice in the seventh with Carlos Beltran hitting his eighth homer of the year and Holliday coming in later in the frame on a passed ball.
Kyle Lohse (1-3) suffered the loss, giving up four runs on 11 hits in five innings. It was Milwaukee's third straight setback.
McPhee, Cokas 'working on their marriage' after affair
Handler slams Piers Morgan: 'You're a terrible interviewer'