(TOM GANNAM ~ Associated Press)
The Diamondbacks' defensive collapse saw to that, wasting a dominant effort by starter Dan Haren.
Heilman and first baseman Adam LaRoche committed throwing errors in the ninth inning as three runs scored in the Cardinals' 6-5 victory Monday night.
Heilman rushed a wild, off-balance toss to third on pinch-hitter Adam Wainwright's sacrifice bunt to allow one run, and LaRoche threw in the dirt to the plate attempting to prevent the tying run from scoring on Skip Schumaker's RBI groundout against a drawn-in infield, allowing two runs.
"I felt like I threw the ball where I wanted to, with the exception of the ball to third," Heilman said. "I think I had a little more time than I thought I did at the moment.
Wainwright scored the winning run from second with a triumphant slide.
"It was very entertaining, I guess," said Cardinals manager Tony La Russa, who was ejected for arguing balls and strikes during Yadier Molina's at-bat to open the ninth inning. "But it was just a weird night. I don't even think the moon's full, is it?"
Must have seemed like it to the Diamondbacks.
"We got exactly what we wanted right there," LaRoche said. "I couldn't find it in my glove and by the time I did, it was just rushed. Terrible grip and just buried it right in the ground. No excuse."
Jason Motte (3-2) allowed Mark Reynolds' two-run homer in the eighth and worked out of a two-out, two-on jam in the ninth. Heilman (2-2) allowed one run in one-third of an inning.
Haren hit the go-ahead homer in the seventh off Chris Carpenter and shut down the Cardinals until getting pulled after Molina and Brendan Ryan singled to open the ninth.
Haren said La Russa's ejection was a tactic to throw him off.
"Tony's good at delaying like that," Haren said. "I've seen it before and I knew exactly what he was doing. He'll probably do it again because it looks like it works."
Haren hit his second career homer to straightaway center off Carpenter and is batting .435 with seven RBIs.
Carpenter had a testy exchange with La Russa in the dugout after the seventh, presumably after the pitcher was told he was done for the night. Carpenter wriggled out of several jams before giving up a two-run, game-tying homer to LaRoche with two outs in the sixth. He has allowed 12 homers this season after giving up only seven last year.
Carpenter had a big welt on his forearm after taking Kelly Johnson's line drive off his right forearm to open the game.
The Cardinals opened the eighth with three straight singles, and Felipe Lopez's hit cut the deficit to 5-3 with Albert Pujols and Matt Holliday coming up. After a visit from pitching coach Mel Stottlemyre, Haren struck out both of the Cardinals' top run producers, then got Colby Rasmus on a routine fly out.
Reynolds' 18th homer glanced off the top of right fielder Randy Winn's glove at the fence just in front of the Cardinals' bullpen. Reynolds, who has been working with coaches to eliminate a loopy swing, had two hits and a walk after entering the game a .132 hitter in June.
The Diamondbacks were dangerous all game with two outs, getting six of their nine hits, including both homers, and adding five walks and a hit batter.
* Documentary filmmaker Ken Burns threw out the first pitch.
* Edwin Jackson is on track to start Friday with two extra days of rest coming off his no-hitter, and Diamondbacks manager A.J. Hinch said he'll announce a starter for Wednesday's series finale today.
* Cardinals RHP Brad Penny (back) threw his first bullpen session Monday. RHP Kyle Lohse (forearm) played catch for the first time since surgery in late May.
* Cardinals RF Ryan Ludwick (calf) missed his fifth start in six games and 3B David Freese (ankle) was not in the lineup.
* Cardinals RHP Blake Hawksworth, who emerged from the bullpen and earned his first victory Saturday with five innings against the Royals, will start Thursday.