Miller (10-6) scattered three hits, issued one walk and struck out six for the National League Central-leading Cardinals, who improved to an MLB-best 60-37 with their fourth win in five games.
Trevor Rosenthal tossed a scoreless eighth and Edward Mujica racked up his 29th save as St. Louis maintained a 1 1/2-game divisional lead over Pittsburgh.
Phils starter Jonathan Pettibone (5-4) was saddled with the loss, surrendering three runs on seven hits over five full frames.
Senate Democrats to pull all-nighter on climate change
Dennis Rodman pledges to end trips to North Korea