David Freese and Allen Craig both homered to lead the St. Louis Cardinals past the Arizona Diamondbacks, 5-2, in the middle test of a three-game series at Busch Stadium.
Rafael Furcal added a two-run triple for the Cardinals, who have won four of their last six games.
Adam Wainwright (11-10) allowed two runs on five hits and a walk with five strikeouts over six innings to win his fourth straight decision. Edward Mujica, Mitchell Boggs and Jason Motte each tossed a perfect inning of relief with Motte picking up his 27th save of the year.
"He's pitching to all the corners, he's keeping you off-balance and he's doing all of those things that a good pitcher does. He was on his game tonight," D'backs third baseman Chris Johnson said about Wainwright.
Joe Saunders (6-9) gave up five runs on seven hits and a walk through six innings for Arizona, which has dropped eight of 11.
After both teams left a man in scoring position in the third inning, Arizona broke through in the fourth on Paul Goldschmidt's one-out blast into the bleachers in left-center field.
But the Cardinals answered in the bottom of the frame when Freese followed Carlos Beltran's one-out double with a homer into the bullpen in left field.
Craig's two-out, home run to right-center field in the fifth inning gave St. Louis a 3-1 edge.
The D'backs got a run back in the sixth inning when Aaron Hill hit a leadoff single, advanced to third on a Jason Kubel base hit and came home on Goldschmidt's double-play grounder to third.
St. Louis, however, regained some cushion in the home sixth with three straight two-out hits as Daniel Descalso and Tony Cruz hit back-to-back singles before Furcal slapped a triple into the right-field corner, giving the Cardinals a 5-2 lead.
"He's got a nice approach going at the plate and he had a big hit for us," Cardinals manager Mike Matheny said about Furcal.
Cardinals catcher Yadier Molina sat out the game with mid-back tightness and is expected to miss at least one more game ... Wainwright improved to 5-3 in 10 career appearances (seven starts) against Arizona ... Saunders fell to 1-2 in three career starts against the Cardinals ... Cardinals center fielder Jon Jay went 0-for-3 to snap an eight-game hit streak ... Arizona is now 49-29 when hitting a home run in a game this season.