Miller (4-2) gave up seven hits and a walk in six innings while striking out five.
He was scoreless through the first five innings before allowing a sacrifice fly by Jonathan Lucroy. Carlos Martinez, Seth Maness and Fernando Salas held the Brewers without a run over the final three innings. Martinez and Maness made their major league debuts.
The Cardinals jumped in front in the third inning on a two-out, two-run home run by Holliday off Brewers starter Kyle Lohse (1-3). Allen Craig followed with a single but was thrown out at the plate attempting to score on a double by Yadier Molina, one of three Cardinals thrown out at the plate.
St. Louis extended its lead in the fifth on Jon Jay's two-run double. Beltran added a solo home run leading off the seventh for the Cardinals, who scored another run in the inning on a passed ball. Allen Craig was thrown out at the plate attempting to score on a single by Pete Kozma to end the inning.
Lohse pitched five innings, giving up 11 hits and four earned runs. He walked one and struck out three. His ERA climbed to 3.16 from 2.53.
Holliday had three hits and a walk in five plate appearances. Ryan Braun, Aramis Ramirez and Norichika Aoki each had two hits for the Brewers.
More Sports Headlines
Snohomish mixed martial artist returns to her first love Mariners beat Twins 4-3 in 11 innings Charles scores 29 points, Liberty beat Storm 78-62 Park wins Women's British Open, captures 4th different major Perry wins 2nd straight Champions Tour's 3M Championship Merritt shoots 67 to win Quicken Loans National by 3 shots Triple Crown winner American Pharoah wins $1.75 million Haskell Invitational Bills' Ryan names Incognito starting left guard
Our new comment system is not supported in IE 7. Please upgrade your browser here.