ST. LOUIS _ Matt Carpenter powered his way to one run Monday night and hustled his way to another.
The third baseman hit his 10th home run to start the scoring and then pulled off a rare bunt double, eventually scoring again, as the Cardinals defeated Miami 5-0 at Busch Stadium.
The home run carried into the first row of the right-center field bleachers in the third inning. His double came against a shifted Miami infield that created wide-open space on the left side and allowed his bunt to roll onto the outfield grass in the fifth.
Carpenter then scored on a two-base fielding error when second baseman Starlin Castro misplayed a fly ball hit by Paul Goldschmidt.
"I do it every time. It's nothing new. Every time they shift me with less than two strikes, I bunt," Carpenter said. "I'm surprised that they did it because it's in the books. If it's less than two strikes and there's nobody over there, I bunt every single time."
Dexter Fowler blew the game open with a three-run homer in the eighth.
Miles Mikolas (5-7) pitched six scoreless innings, allowing six hits with four strikeouts and no walks. Three relievers finished off the shutout in a game in which no walks were issued by either team.
Carpenter had three hits but it was the double that drew the most attention. With the entire Miami infield lined up on the right side, he dropped a bunt that pitcher Elieser Hernandez was forced to pursue.
As Hernandez trotted after the ball, Carpenter rounded first and never hesitated in going to second as the ball rolled several feet onto the outfield grass.
Carpenter also started the eighth-inning rally with an infield single. Paul DeJong followed with a single before Fowler's eighth home run.
The Cardinals have won six of their last eight games.
"We're playing better," Carpenter said. "We're getting good starting pitching, the bullpen's been great and the offense is starting to find its groove. We know we have good hitters in here. We're looking for everyone to catch fire and hopefully that's starting."