"My sinker was kind of all over the place early and my other pitches weren't as good as they have been," Westbrook said. "I still felt like I was able to minimize the damage a little bit and give us a chance."
Prince Fielder had a sacrifice fly in the first inning and an RBI double in the third to help the Brewers open a five-game cushion on the second-place Cardinals.
Milwaukee clinched only its fifth road series win of the season and will try for a three-game sweep Thursday night. The Brewers have taken four of five from St. Louis this month.
Cardinals manager Tony La Russa was ejected by first base umpire Greg Gibson in the ninth for arguing a call at first. Pinch-hitter Josh Wilson was ruled safe on a sacrifice bunt when first baseman Albert Pujols struggled to keep his toe in contact with the bag.
Pujols said he thought he had touched the corner of the bag.
"He missed a call and he didn't think he missed it," La Russa said. "That had very little to do with us losing the game. Short fuse, very undeserved ejection."
Though he didn't like the call, Pujols was happy with the way he was treated.
"He didn't give me any attitude back," Pujols said. "He just said 'Hey, I didn't see it' and that was it. He was honest."
The Brewers are 41-15 at home and just 26-35 on the road, but are one win away from a perfect 6-0 trip.
Pujols had a sacrifice fly in the first for the Cardinals, but is 0 for 8 in the series and 5 for 42 (.119) with only four RBIs against the Brewers this season. St. Louis entered with a four-game winning streak but has yet to lead in the series.
"It's not about me, dude, it's about the ballclub," Pujols said. "If I go 0 for 8 and we would have gotten two wins out there, who cares about it?
"Just a couple of tough losses."
The Cardinals are 3-8 this season against the Brewers.
"It's part of me hitting, what, .124?" Pujols said. "So I mean, that's the way it goes. Sometimes you're going to have great success against a ballclub and sometimes you're going to struggle against a ballclub.
"Too bad it's against the guys we're chasing."
Wolf (9-8) relied on defense, retiring 18 of his last 20 with no walks and one strikeout. He allowed one run and five hits, and pitched four 1-2-3 innings. He's beaten the Cardinals his last two outings although this one was a lot better than a week earlier when he gave up five runs in six innings of a 10-5 victory.
Four of the first five Brewers reached safely to open the game, although they settled for Fielder's sacrifice fly. The Cardinals matched them in the bottom of the first on Rafael Furcal's leadoff double, a sacrifice fly and Pujols' sacrifice fly.
Westbrook (9-6) settled down after that, retiring 11 in a row before walking Fielder with one out in the eighth. He lasted eight innings to match his career best at Busch Stadium despite matching his season high with five walks, three of them to the first 12 hitters.
"Once I kind of got back in the zone and got a little bit more aggressive, I got back to more what I'm capable of doing," Westbrook said. "Just kind of one of those games that didn't turn out good."
NOTES: Casey McGehee is batting .435 (10 for 23) in extra innings since joining the Brewers in 2009, the best average on the team during that span. ... Lance Berkman is 3 for 30 against Wolf and was not in the St. Louis lineup even after Matt Holliday was scratched with what the team believes is a minor back injury sustained in the weight room earlier Wednesday. ... C Yadier Molina returned after serving a five-game suspension for St. Louis and extended his hitting streak to 13 games with a single in the fourth. He's batting .412 (21 for 51) during the streak.