"But a lot of crazy things happened in the bottom of the ninth," the catcher said. "They hit balls all around the shift, but we were able to hold on."
St. Louis scored five runs in its half of the ninth and had the tying run in the on-deck circle when Michael Bourn ran down Matt Carpenter's drive to the warning track in right-center, preserving an 11-7 win Friday night that snapped Arizona's seven-game losing streak at Busch Stadium.
In notching their first victory under the Gateway Arch since June of 2013, the Diamondbacks (20-24) pounded out 15 hits against five Cardinals pitchers, including consecutive homers by Herrmann and Brandon Drury against third baseman Ruben Tejada.
That Tejada, the first position player to pitch for St. Louis (22-20) in two years, was throwing 88 mph fastballs instead of manning the hot corner essentially served as a concession speech. Down 9-2 after leaving the bases loaded in the eighth, the Cardinals didn't want to further tax their bullpen.
However, Arizona couldn't enjoy a blowout win. St. Louis sent 10 men to the plate in the ninth, parlaying five hits, a walk and an error into a puncher's chance.
Pinch-hitter Brandon Moss' two-run double capped the scoring, and when Matt Adams extended the inning with an infield single, Diamondbacks manager Chip Hale lifted Evan Marshall for rookie Jake Barrett.
Carpenter's well-struck ball appeared headed for extra bases and two more runs, but Bourn's speed kept things from really getting dicey for Arizona.
"That's how we age quickly," Hale said with a laugh.
Most of the game was a collection of smiles the Diamondbacks seem to elicit when wearing road uniforms, as they improved to 13-7 when batting first.
Herrmann's two-run single in the first gave Arizona a lead it never relinquished. Starter Patrick Corbin (2-3) shrugged off control problems to work 6 1/3 innings, yielding two runs off four hits and four walks while fanning seven.
"I thought he pitched really well," Herrmann said of Corbin. "I thought the slider was his best pitch. We mixed it up well as a team out there."
Up 4-2 after Tyler Clippard quelled a Cardinals threat in the seventh by whiffing Matt Holliday with the tying runs on base, the Diamondbacks worked Jonathan Broxton and Dean Kiekhefer over for five runs on five hits in the eighth.
Chris Owings singled home two runs on the ninth pitch of his at-bat, followed by RBI singles from pinch-hitter Rickie Weeks, Bourn and Paul Goldschmidt that reduced the crowd of 43,301 to a few thousand.
Herrmann, Bourn, Owings, Goldschmidt, Jean Segura and Jake Lamb each contributed two hits to a 15-hit attack as Arizona added to the May woes of St. Louis starter Carlos Martinez.
In eating his fourth straight loss, Martinez (4-4) left after five innings, allowing seven hits and four runs while walking three and striking out three. Martinez has pitched to a 5.85 earned run average during his losing streak, lasting an average of five innings per start.
"I felt good, but my command was a little off today," he said. "It's a matter of finding my rhythm and control."
Aledmys Diaz knocked in two runs and went 2-for-5 for the Cardinals, which also got RBI singles from backup catcher Eric Fryer and Jedd Gyorko in their wild ninth. But it wasn't enough to keep the Diamondbacks from continuing their success on the road.
"It's a good question," Hale said of why Arizona is playing .650 baseball away from Phoenix and is 7-17 at home. "Let's just say we've been poor at home."
NOTES: St. Louis SS Jhonny Peralta (left thumb) started his rehab assignment Friday night at Single-A Peoria, going 0-for-2 and handling five chances without error. Peralta will also see time at third base while he prepares for his return to the majors. ... Arizona RHP Josh Collmenter (right shoulder inflammation) will make his fifth rehab start for Triple-A Reno on Sunday. ... Cardinals OF Randal Grichuk (back) didn't start Friday night but pinch-hit and drew a walk in the seventh inning. ... The last two innings ate up 1:25, a prime reason the game took 3:46 to play.