PHOENIX (AP) - Pinch hitter Matt Carpenter lined a go-ahead double in the sixth inning, Allen Craig homered to cap a four-run burst in the ninth and the St. Louis Cardinals beat the Arizona Diamondbacks 7-2 Thursday night for a three-game sweep.
David Freese had three hits as St. Louis won its fourth in a row.
Kyle Lohse (5-1) allowed one run and seven hits in five innings.
The Diamondbacks started the ninth with three straight singles to load the bases against Mitchell Boggs. Jason Motte came on to retire the side on a strikeout and a double play for his sixth save.
Arizona has lost five straight at home and seven of eight overall.
Wade Miley (3-1) pitched 5 2-3 innings, allowing three runs on 10 hits with two walks. He lost for the first time since Sept. 16 at San Diego, a span of five starts and eight appearances.
Carpenter's appearance came up with the score 1-all after Tony Cruz's two-out single. As he was announced as the pinch hitter, Arizona's bullpen phone rang and pitching coach Charles Nagy sprinted to the mound.
Carpenter doubled home Freese, who had drawn a leadoff walk, and Cruz. Diamondbacks manager Kirk Gibson quickly pulled the left-handed Miley in favor of right-hander Bryan Shaw, who retired Rafael Furcal to end the inning.
Arizona got within a run in the sixth when Miguel Montero singled and scored on a double by Aaron Hill.
The Cardinals extended their lead with a two-out surge in the ninth against J.J. Putz. Furcal and Carlos Beltran singled, Matt Holliday hit an RBI double off the center-field wall and Craig then hit his third home run.
Putz, making his first appearance in five days, allowed four runs on five hits whole getting two outs.
Three consecutive singles, the last on a looping hit to center by Miley, gave the Diamondbacks a 1-0 lead in the second.
The Cardinals tied the game in the fifth when Lohse singled, went to third on a single by Furcal and scored when Beltran's hard grounder to third deflected of Ryan Roberts' glove and bounced off his chin for an error. Beltran was credited with an RBI.
NOTES: Lohse has thrown exactly five innings in each of his past two starts. ... The Diamondbacks had been outscored 20-1 in the first four innings of their past four innings before Miley kept the Cardinals scoreless over the first four. ... Miley's single extended his hitting streak to five games, the longest by an Arizona pitcher since Barry Enright's five-game streak in 2010. ... Both teams have off-days on Thursday. LHP Jamie Garcia will go for his 30th career win against Mike Minor and the Braves in St. Louis on Friday. Rookie LHP Patrick Corbin will open a three-game series against San Francisco at home for Arizona, also on Friday.