Cardinals 7, Diamondbacks 2: Matt Carpenter ripped a pinch-hit, two-run double in the sixth inning to snap a tie and Rafael Furcal had four hits as visiting St. Louis completed a three-game sweep of reeling Arizona.
Matt Holliday had a two-run double and Allen Craig added a two-run homer to provide insurance in the ninth inning for the Cardinals, who have scored 30 runs during their four-game winning streak.
With runners on the corners and two outs, St. Louis manager Mike Matheny opted to send Carpenter to the plate in place of Kyle Lohse (5-1). Carpenter made the move pay off after slicing an offering from rookie Wade Miley (3-1) just past the outstretched glove of left fielder Jason Kubel. David Freese, who had three hits, and Tony Cruz scored to give St. Louis a 3-1 lead.
Lohse allowed one run on seven hits in five innings to pick up the win. Five relievers limited the Diamondbacks to just one run over the final four frames.
Lyle Overbay and Ryan Roberts had three hits apiece, Aaron Hill ripped an RBI double and Miley had a run-scoring single to extend his hitting streak to five games.
Miley permitted three runs on 10 hits in 5 2/3 innings for the Diamondbacks, who dropped their fifth straight game overall and 10th in 12 outings at Chase Field this season.
GAME NOTEBOOK: Furcal extended his hitting streak to nine games. ... The Cardinals will enjoy a day off on Thursday before hosting a three-game set versus Atlanta. ... Arizona will return to the diamond Friday when it begins a three-game series versus NL West rival San Francisco.