ST LOUIS -

Jonathan Pettibone more than held his own against the high-powered St. Louis Cardinals offense.

The Philadelphia rookie right-hander kept his team within striking distance with five solid innings, but came up on the short end of a 4-1 loss Tuesday night.

Pettibone (5-4) allowed three runs and seven hits. He has given up three runs or less in each of his last six starts.

"Lately, I've felt good and there's a few positives out of today," he said. "I just want to build on these last couple outings and go from there."

Pettibone gave up a run in the first, but allowed just one walk over the next two innings. St. Louis touched him for two runs in the fourth. Pettibone bounced back and worked out of a bases-loaded jam in the fifth by striking out David Freese to end the threat.

"They worked him and they had some baserunners on," Philadelphia manager Charlie Manuel said, "But he wriggled out of trouble. He did a good job holding them to three runs."

Pettibone has allowed three runs or less in 14 of 17 starts.

"A couple of innings I ran into trouble with some balls up," Pettibone said. "But that's a tough lineup. They were patient."

Pettibone was good but St. Louis rookie right-hander Shelby Miller was better

Miller, starting for the first time in 12 days, threw six shutout innings and Allen Craig drove in a pair of runs to lead the Cardinals to their fourth win in five games.

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. But he bounced back strong against the Phillies surrendering 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 biggest thing for me was to clear my head and get back to where I need to be," Miller said. "I just relaxed and threw out there. I got some time away, got time to work on some mechanics and get things straightened away."

Miller threw 85 pitches, 62 for strikes. He set the side down in order in three innings and allowed two runners to reach in just one frame.

"We're real excited to see Shelby get back to the form that he was earlier in the year," St. Louis manager Mike Matheny said. "He made some nice adjustments since his last start."

Miller went 7-3 with a 1.91 ERA over his first 12 starts this season before slowing down. He struggled mightily in his previous three contests.

But the time off appeared to work wonders. Miller missed just one start, but because of the All-Star Break he went almost two weeks without an appearance.

"I did a pretty good job of getting ahead in the count, that was the difference-maker tonight," Miller said. "I felt like we had a really good control of the game. We were at a really good pace."

Miller improved to 3-0 with a 1.78 ERA on more than six days rest this season.

Manuel said Miller's attack mentality was the key to his success.

"He challenged us at times," Manuel said. "He's got a good arm and a big fastball."

Thanks to Miller's bounce-back effort, 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 the 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 two-run fourth. Freese followed with a run-scoring single to push the lead to 3-0.