Miller (10-6) broke out of a three-start slump with one of his finest efforts of the season. He had given up 10 earned runs in 12 2-3 innings over his previous three starts. He was working on 12 days rest and gave up three hits while striking out six and walking one. He is the third St. Louis starter to reach double-digits in wins joining Adam Wainwright (13-5) and Lance Lynn (11-5).
The Cardinals have won four of five and 10 of 13. Philadelphia lost its third straight game.
Edward Mujica picked up his 29th save in 31 opportunities. Randy Choate, Seth Maness and Trevor Rosenthal followed Miller to mound.
Yadier Molina and David Freese also drove in runs for the Cardinals, who remain 1.5 games ahead of Pittsburgh in the NL Central.
Craig and Molina hit back-to-back doubles off Philadelphia starter Jonathan Pettibone in a three-run fourth. Freese followed with a run-scoring single to push the lead to 3-0.
Pettibone (5-4) allowed three runs on seven hits over five innings. He has given up three runs or fewer in his last six starts.
St. Louis jumped to a 1-0 lead in the first on singles by Matt Carpenter and Jon Jay and a ground out by Craig.
The Phillies only two-runner threat against Miller came in the first. Michael Young walked with one out and Chase Utley followed with a single. Miller then got Domonic Brown to ground into an inning-ending double play.
John Mayberry Jr. doubled in Darin Ruf in the seventh to trim the deficit to 3-1.
Utley had three hits. He is eight for his last 16.
— Associated Press —