ST. LOUIS -- Randy Wolf followed a "horrible" outing against St. Louis with one of his best of the season.
The Brewers won their fourth straight to move 10 1/2 games ahead of St. Louis in the NL Central, tying their largest lead of the season.
Wolf (12-9) gave up four hits, struck out five and walked two as he improved to 6-1 with a 3.11 ERA in his last eight starts. He allowed two hits over his final six innings and helped his bounce-back effort with two infield singles.
Just five days earlier, Wolf gave up six earned runs and lasted five innings in an 8-3 loss to the Cardinals in Milwaukee, a performance he called, "horrible."
"That was a tough one to swallow," Wolf said. "It was rough."
The eight-inning stint ties Wolf's longest outing of the season and he erased the memory of his only bad performance during this current eight-start run.
"I just wanted to concentrate on slowing my body down," Wolf said. "Today, my body was in a position where I could throw off-speed pitches in any count."
Braun said Wolf looked like a totally different pitcher.
"He made some adjustments and really did a great job," Braun said. "It starts with our starting pitching and Randy was phenomenal."
John Axford pitched a perfect ninth to record his 41th save in 43 chances.
Cardinals starter Jake Westbrook (11-8) gave up three runs and nine hits in six innings. He tied a career high with nine strikeouts.
"My off-speed stuff was good," Westbrook said. "I had a really good changeup."
St. Louis lost for the third time in the last four games.
The Cardinals were looking to get back into the race. Instead, they find themselves in a deep hole with 21 games remaining.
"This is baseball, you can't figure it out," St. Louis first baseman Albert Pujols said. "You think we're not trying? It is what it is. They're playing well. Give the credit to those guys."
Westbrook kept his team in the game but the Cardinals couldn't solve Wolf.
Braun, who went 2 for 5 and leads the league with a .335 average, hit his 27th homer in the third inning to give the Brewers a 2-0 lead.
Yuniesky Betancourt, who went 3 for 4, drove in a run with a single to left in the sixth.
Morgan added his fourth homer of the season in the seventh off reliever Kyle McClellan.
St. Louis swept the Brewers in Milwaukee last week to climb to within 7 1/2 games. Less than a week later, the lead is back to where it was at the start of that series.
"Those guys beat us pretty bad at our place," Milwaukee manager Ron Roenicke said. "We needed to come back and play a good game. We really played well. We pitched great and made some nice defensive plays."
Braun said the Brewers needed to bounce back from the three losses to St. Louis. Milwaukee outscored Houston 20-4 in a three-game sweep over the weekend.
"This is definitely a good start to the series," Braun said. "We feel good about ourselves again."
Milwaukee's Corey Hart extended his hitting streak to 17 games with a run-scoring single to deep short in the second.
St. Louis RHP Kyle Lohse (12-8, 3.72 ERA) takes on Yovani Gallardo (15-9, 3.68) in the second game of the three-game series Tuesday. ... The Brewers are 20-7 on the road after a 16-31 start. They are 14-3 in their last 17 road games. ... Morgan's home run was his first since July 2 -- a span of 190 at-bats and 53 games. ... Milwaukee has used six starting pitchers this season, the lowest total in the majors. ... Pujols is 10 for 20 this month with two homers and six RBIs. ... INF Tyler Greene, C Tony Cruz and OF Adron Chambers have been recalled from Triple-A Memphis team and will join the roster on Tuesday. ... St. Louis OF Lance Berkman did not play. He is 3 for 32 against Wolf. ... The Brewers recalled RHP Tim Dillard from Triple-A Nashville. He is 4-2 with a 3.68 ERA.