ST. LOUIS -- Paul Goldschmidt has a new plan for hitting with runners on base.
So far, it is working well.
Arizona, which improved to 7-2 in extra innings, has won three of four.
St. Louis (38-20), which still has the best record in the majors, has lost all four of its extra-inning games this season.
Goldschmidt believed he let his teammates down during crunch time toward the end of last season even though he batted .305 with runners on base.
"I'm not sure about the numbers, but I felt like I struggled with runners on," he said.
So he found an interesting way to change the situation. Goldschmidt's winning hit improved his average to .376 with runners on base.
"I pretend there is nobody on base and just stick with my same approach," he said. "It's worked so far. We'll see what happens the rest of the year."
A.J. Pollock hit a three-run homer for Arizona, and Willie Bloomquist had four hits in the 4-hour, 53-minute game. Josh Collmenter (2-0) earned the win with four innings of scoreless relief. Heath Bell recorded his 10th save in 12 opportunities.
"He's just got a great approach up there," Diamondbacks manager Kirk Gibson said of Goldschmidt.
Arizona is 10-2 in its past 12 road games against NL Central opponents.
Bell gave up a leadoff double to Yadier Molina in the 14th before retiring the next three hitters.
The Diamondbacks are 3-3 on their eight-game trip.
"An outstanding baseball game," Gibson said. "We would have liked to have won it earlier, but we didn't give in. We've had several of these [extra-inning] games, more than anybody."
Arizona beat St. Louis 10-9 in 16 innings on April 3.
The Diamondbacks bullpen, led by Collmenter, allowed only one run over the final 8 1/3 innings. Collmenter, who earned the win in the earlier 16-inning game, struck out five and gave up four hits.
"He was the hero of the game," Arizona infielder Martin Prado said.
The Cardinals rallied from 4-1 and 6-3 deficits and tied the game in the seventh on a run-scoring single by Carlos Beltran.
"I was proud of the way the guys battled all night long right to the end," St. Louis manager Mike Matheny said. "The best thing to come out of this is that we battled."
Pollock's three-run homer staked the Diamondbacks to a 4-1 lead in the fourth.
St. Louis infielder David Freese had a career-high four hits and extended his career-best hitting streak to 14 games with a single in the sixth. He added singles in the eighth, 10th and 12th.
"You want to win these games, especially after a long night," Freese said. "But you have to hand it to those guys over there. They took care of business."
Pollock drilled a 2-0 pitch into the first row of the left-field bleachers off St. Louis rookie starter Michael Wacha, who gave up six runs in 4 2/3 innings. Pollack has hit safely in eight of nine games.
St. Louis cut the deficit to 4-3 on Craig's fourth home run of the season.
The Cardinals scored single runs in the fifth and sixth to get within 6-5.
St. Louis infielder Matt Carpenter stretched his hitting streak to a career-best 13 games with a leadoff triple in the first.
Arizona left-hander Tyler Skaggs gave up five runs in 5 2/3 innings. It was his second start of the season and eighth of his career.
- Wacha and Skaggs, two former first-round draft choices, were born 12 days apart in July 1991.
- St. Louis RHP Joe Kelly (0-2, 6,75) will make his first start of the season Wednesday against Wade Miley (3-5, 5.01) in the third game of the four-game series.
- Arizona is the only team in the majors that hasn't been shut out this season.
- St. Louis RHP Jake Westbrook went 3 2/3 innings and allowed one run and six hits in a rehab start on Tuesday for the Cardinals' Double-A team in Springfield, Mo. Westbrook, who threw 45 strikes in 60 pitches, went on the disabled list on May 9 because of right elbow inflammation. "Everything felt good," he said. "I was a little erratic with my pitches, but that's expected the first time out."