ST. LOUIS -- Even healthy, Randy Johnson might have had a tough time topping his stand-in.
Rookie Yusmeiro Petit pitched into the sixth inning in place of the injured veteran and the Arizona Diamondbacks backed him with three home runs in a 7-1 victory over the St. Louis Cardinals on Tuesday night.
"He did great," catcher Miguel Montero said. "He was throwing a lot of strikes and keeping the ball low. You see the results."
Chris Young, Chad Tracy and Mark Reynolds connected for the Diamondbacks, who ended a three-game losing streak and silenced a team that had scored 11 runs in each of its last two games. A sellout crowd cheered loudest for a July 4th holiday fireworks display visible beyond the center-field wall in the late innings.
Swapping Johnson, who has 284 career wins, for Petit, who won his second game, was no break for the Cardinals.
"Competition like that, we like facing great pitchers," manager Tony La Russa said. "You don't want to see anybody get hurt, but we didn't do much facing the pitcher who went against us, so it wasn't much of an advantage."
Albert Pujols went 3-for-3 with a walk but Todd Wellemeyer (2-1) was victimized by two first-inning errors and surrendered all three homers in three innings, his shortest outing in seven starts since joining a beat-up rotation. The Cardinals scored 48 runs in winning Wellemeyer's first six starts.
"I felt pretty good, actually," Wellemeyer said. "They're an aggressive team, I'm an aggressive pitcher.
"Sometimes it works in your favor, sometimes it doesn't."
Petit (1-1) arrived about three hours before the game to take Johnson's spot in the rotation after the 43-year-old lefty was placed on the 15-day disabled list for the third time this season because of a back injury. The 22-year-old right-hander allowed a run and five hits in 5 1/3 innings.
The performance was more impressive given that Petit threw three innings of relief, about 50 pitches, Saturday in the minors. Manager Bob Melvin said before the game that Petit would be considered for Johnson's next turn in the rotation on Sunday, the day before the All-Star break, and afterwards all but awarded that start to him.
"We'll make a decision on that tomorrow but I wouldn't argue on that now," Melvin said. "I didn't think I'd be able to get what I did out of him, to tell you the truth."
Shortstop Aaron Miles bounced a throw in the dirt that first baseman Pujols couldn't handle and right fielder Juan Encarnacion dropped a routine fly ball, helping the Diamondbacks take a 2-0 lead in the first. Reynolds' sacrifice fly started the scoring and Stephen Drew added a run-scoring single.
Wellemeyer hadn't allowed a home run in his last two starts and had given up only one in five June outings covering 23 1/3 innings. He gave up six runs, four earned, and seven hits.
Young hit his 12th homer with two outs in the second and Tracy and Reynolds connected on consecutive at-bats in the third. Tracy's sixth homer was a two-run shot on an 0-2 pitch after Eric Byrnes' leadoff walk and Reynolds hit his sixth two pitches later for a 6-0 lead.
The Cardinals loaded the bases in the sixth but settled for a sacrifice fly by Scott Rolen, giving Rolen five RBI the last two games. Pinch hitter Conor Jackson added an RBI single in the eighth off Kip Wells, who retired his first 11 batters and gave up one run in five innings.
- St. Louis Blues forward Paul Kariya, who signed a three-year free agent deal on Sunday, threw out the ceremonial first pitch.
- The Diamondbacks homered in consecutive at-bats for the first time this season and it also was the first time it's happened against St. Louis pitching this year.
- Cardinals CF So Taguchi mis-timed a jump at the wall on Scott Hairston's double in the third, but followed it up with a nice effort that produced a double play on Montero's sinking liner.