Cardinals 9, Diamondbacks 6: Carlos Beltran and Matt Holliday belted back-to-back home runs in the third inning and Allen Craig and David Freese followed suit in the seventh as visiting St. Louis outslugged reeling Arizona.
Rafael Furcal collected three hits - including a homer to lead off the game for the Cardinals, who have scored 17 runs in their last two contests.
Lance Lynn (6-0) became baseball's first six-game winner after scattering three hits and striking out seven in five innings.
Arizona's slumbering bats awoke in a six-run sixth inning as Cody Ransom belted a two-run homer and Ryan Roberts added a two-run double.
The Diamondbacks failed to score again as Jason Motte stranded a pair of runners in the ninth for his fifth save.
Joe Saunders (2-2) matched his season total by allowing seven runs to take the loss. He also yielded nine hits in 3 1/3 innings for Arizona, which has dropped five of its last six overall and eight of 10 at Chase Field this season.
GAME NOTEBOOK: J.C. Romero relieved Lynn and did not record an out. The former Philadelphia Phillies reliever allowed five runs on four hits in the sixth inning. ... Craig homered for the second time in as many games. Prior to the outburst, Craig hadn't gone deep since Game 7 of the World Series.