• Turning point: Albert Pujols led off with a double in the eighth and moved to third. But after Chris Duncan walked, Brandon Lyon struck out Russell Branyan, then Yadier Molina bounced out to short to end the inning.
• Hero: Webb allowed two runs on four hits over six innings, while fanning five and walking four.
• Unsung hero: Jose Valverde pitched the ninth for his major-league best 43rd save in 50 chances.
-- ESPN.com news services
Diamondbacks 4, Cardinals 2
PHOENIX (AP) -- Brandon Webb was good enough, and his bullpen was better.
Webb outpitched Adam Wainwright to earn his 15th victory, and the Arizona relievers blanked the Cardinals in the final three innings in the Diamondbacks' 4-2 victory Friday night.
The win, coupled with San Diego's loss at Colorado, boosted Arizona's NL West lead to two games over the Padres. The Cardinals, meanwhile, dropped to .500 and missed a chance to move into a first-place tie in the NL Central.
"We've played this game a few times this year," Diamondbacks manager Bob Melvin said, "this type of game."
Webb (15-10), who had lost his last two after winning six in a row, gave up two runs, including Jim Edmonds' solo homer, on four hits in six innings. He fanned five and walked four.
Eric Byrnes was 2-for-4 including a double that drove in the tying run from first in Arizona's two-run sixth. The Diamondbacks went on to score the go-ahead run when second baseman Aaron Miles tripped on what should have been the inning-ending double play.
Jeff Salazar started the inning with a walk from Wainwright, who lost for the first time in five starts.
After Salazar walked, Mark Reynolds reached on an infield single despite a diving stop by shortstop David Eckstein. Chris Young bounced to Miles in what might have been a double play, but the second baseman tripped just before he got to the bag and couldn't get the throw off to first. Byrnes scored to put Arizona up 3-2.
Miles knew he had to move quickly to double up the speedy young.
"I got in a hurry," he said. "I was trying to set up my feet to throw as I was stepping on the base, and I just kind of got chopped up."
Wainwright (13-10) gave up three runs, two earned, on six hits in six innings
"I thought he pitched well enough to win," St. Louis manager Tony La Russa said. "He was up against a tough guy in Webb. We couldn't do much with him."
Wainwright blamed himself.
"I threw it pretty good, but I was given a lead against Brandon Webb, one of our game's best, and I blew it," Wainwright said. "That's the bottom line. I'm really feeling I got punched in the stomach. I feel I let the team down because we needed that win right now."
The Cardinals threatened to tie in the eighth when Albert Pujols led off with a double and moved to third when Edmonds flew out to center. But after Chris Duncan walked, Lyon struck out Russell Branyan, then Yadier Molina bounced out to short to end the inning.
"For him to get out of that situation, I think that right there was the key to the game," Byrnes said. "Brandon Lyon is a tough guy. He's been a huge part of our success this year."
The Diamondbacks scored an unearned run in the second when Augie Ojeda, starting in place of injured Orlando Hudson at second, singled with two outs. Branyan fielded Webb's high chopper at third but threw wildly past first.
Ojeda scored from first. Right fielder Rick Ankiel threw wide of the plate past Molina. With the catcher in the way, Ojeda leaped over him to touch the plate.
Edmonds' 10th home run of the season, with one out in the fourth, tied it at 1.
Pujols' two-out RBI single brought home Miles from third to give St. Louis a 2-1 lead in the fifth. Miles reached on a bunt single, was sacrificed to second by Eckstein, then advanced to third on Ankiel's ground out.
One night after homering twice and driving in seven runs, Ankiel was 1-for-4 before being replaced in a double switch in the seventh. Before the game, he spoke with a crowd of reporters about a published report that he had received human growth hormone shipments in 2004 from a pharmacy at the subject of an investigation for illegally distributing prescription medications.
He said all medications he received were legal under a doctor's care.
St. Louis had scored 41 runs in its previous four games. ... 2B Alberto Callaspo, sidelined since mid-August with a strained hamstring, could start for Arizona Saturday. He would be the everyday second baseman if Hudson needs season-ending thumb surgery. ... The game matched the starters with the best records -- minimum 10 starts -- since the All-Star break.