Miller (7-4) entered the start having allowed 16 runs in his first 12 starts, but with six of those runs having scored off him in the first inning. The Mets would add two more to that tally.
After Miller retired the first two batters, the Mets strung together three straight hits. David Wright doubled and scored on a single by Daniel Murphy. Lucas Duda then dropped a single into right field that scored Murphy from first when outfielder Carlos Beltran made the mistake of throwing casually to second base instead of toward home.
The inning ended with a strikeout, one of five Miller would notch during a subsequent seven-batter span. But he'd also need 30 pitches to finish the frame.
"I don't know whether it's not as locked in or just going out there trying to throw strikes and leaving it over the plate and allowing runs," Miller said of his repeated first-inning hiccups. "I don't necessarily know what it is, but I'm going to go back and watch film through those first couple of innings to see if there is something I can pick up."
In his 13 starts, Miller has had a clean first inning just twice. He's averaging 19 pitches in the frame and has thrown at least 21 first-inning pitches in five of his last six starts. Opponents are hitting .357 off him in the first, .175 against him from the second inning onward.
"That kind of sets the tone in the first when they score two runs," he said. "You're giving them the momentum right there. I made two mistakes the rest of the game, otherwise I felt good."
Miller finished the night with the second double-digit-strikeout outing of his career, with six of the strikeouts coming on a swinging third strike. He joins Alan Benes and Rick Ankiel as the only Cardinals pitchers since 1916 to have two 10-strikeout performances in his first 19 career games.
Miller leveled his pitch count quickly, too, needing an economical 66 to work through those last five innings.
"He was unbelievable," Mets outfielder Marlon Byrd said. "We needed to get the hits we needed."
"All of a sudden, after the first inning, he started to get it going, and I was thinking, 'My gosh, here we go again,'" added Mets manager Terry Collins, whose team was shut out by Miller for 5 2/3 innings on May 15. "Great stuff, but we just hung in there, and we got a couple of bigger hits."
Those "bigger hits" included the only two Miller gave up after the first inning -- each was a solo home run.
Duda went deep in the fourth, pushing the Mets ahead, 3-0. After Allen Craig answered with his second homer in as many days, Wright advanced the lead back to three with his ninth home run of the season.
Miller entered the start having allowed just four home runs in his previous 75 1/3 innings this year.
"He only gave up five hits, but they counted for four runs," manager Mike Matheny said. "Just like Michael [Wacha on Tuesday], it was another pitcher who had a lot going against him early and kept his composure and gave us a chance."
The long ball barrage continued upon Miller's exit, too, with Byrd greeting reliever Seth Maness with a solo shot to lead off the seventh. It marked just the third time this season that the Cardinals have served up three homers in a game.
Aside from the three consecutive hits in the first and the three home runs to follow, the Mets did not record another hit en route to improving their record to 24-36.
St. Louis matched New York with six hits, though Craig's home run accounted for the only meaningful damage off Mets starter Dillon Gee. The Cardinals twice couldn't capitalize with runners on the corners in the second. Gee retired eight-hole hitter Pete Kozma and Miller to get out of that trouble.
Overall, the Cardinals went 1-for-6 with runners in scoring position.
"We've had a real nice run of getting those big hits in big situations, and we've made it clear throughout this season that we don't anticipate that [continuing]," Matheny said. "It's very tough to make it happen. They've done a nice job so far this season; tonight we just couldn't put it together."
The only other runner to reach scoring position the rest of the night was Yadier Molina, who improved his National League-best average to .358 with a three-hit night.
David Freese finished the game 0-for-4, snapping his 20-game hitting streak. During that 20-game run, he batted .382 and drove in 16 runs.