Travis Shaw, Eric Thames and Jett Bandy each clubbed long home runs as Milwaukee slugged its way to a 7-5 victory at Miller Park.
Shaw and Bandy extended their homer streaks to three games, while Thames hit his seventh home run in his last eight contests and has a major-league-leading eight.
Milwaukee (9-8) leads the majors with 32 round-trippers and has homered in 12 consecutive games.
"I think it's hitting mistakes -- putting your 'A' swing on a mistake -- and we're doing a good job of that," Brewers manager Craig Counsell said.
Shaw got the barrage started in the first inning, blasting what a 458-foot bomb off the facing of the third deck in right field for a 3-0 lead.
"That's one or two of the best balls I've hit," Shaw said. "I'll take it. With a guy on third and less than two outs, I'm just looking to get something in the air. It worked."
Milwaukee starter Zach Davies (1-2) allowed four runs in 5 1/3 innings, but the home-run bats allowed him to pick up his first win. He struggled through a second inning that saw Kolten Wong's bases-loaded triple get the Cardinals back to even.
Matt Carpenter's solo homer in the fifth gave St. Louis (6-10) a 4-3 lead, but Thames quickly erased that deficit. After a one-out single by Jonathan Villar, Thames launched a two-run bomb to left-center in the bottom of the inning off starter Carlos Martinez (0-3).
"Physically, I feel great," said Martinez, who won 16 games a year ago. "It is just trying to locate my fastball, which is kind of off right now."
Thames is hitting .415 with eight homers and 14 RBIs. Cardinals manager Mike Matheny is impressed by what he sees.
"We've watched him pretty closely," Matheny said. "He's obviously hot. He's on a pretty impressive run. He's doing some impressive things right now. He's not chasing a lot of balls out of the zone."
Jedd Gyorko led off the sixth with a double. Davies got Randal Grichuk on a grounder to third, and Counsell summoned Oliver Drake from the bullpen. Drake did the job, inducing a grounder to first by Wong and striking out pinch-hitter Matt Adams.
Bandy added two more, following a walk to Kirk Nieuwenhuis with a no-doubt blast to left off Kevin Siegrist.
Bandy, acquired from the Los Angeles Angels in the offseason, is hitting .314 with four homers and six RBIs as he splits time behind the plate with Manny Pina. Bandy said he believes the Brewers have the capability of being a high-scoring offense.
"We have the power to do it," he said. "I know it's super early to tell, but if we keep having quality at-bats all throughout the lineup, you never know what can happen."
Gyorko homered in the eighth off Jhan Marinez to pull the Cardinals within two, but Jacob Barnes shut the Cardinals down in the ninth for his first save of the season and the second of his career.
Barnes is normally the seventh-inning man, but late-inning reliever Corey Knebel and regular closer Neftali Feliz had extended pitch counts Wednesday. Barnes has not allowed a run in 10 1/3 innings over 10 appearances.
NOTES: St. Louis 3B Jedd Gyorko went 3-for-3 with a home run, two doubles and a walk after entering the game hitting .226. ... Milwaukee 1B Eric Thames had an 11-game hitting streak snapped Wednesday but started a new one in his first at-bat Thursday, singling to left in the first inning. ... Brewers 3B Travis Shaw has 16 hits this season, 13 for extra bases. ... Milwaukee 2B Jonathan Villar collected two hits after entering the game hitting .138. ... Brewers LF Ryan Braun, once again the subject of trade rumors with the Los Angeles Dodgers, struck out swinging in his first three times up. ... The Cardinals placed INF Jhonny Peralta on the 10-day disabled list with a respiratory infection. Peralta has been bothered by the condition since spring training and was hitting .120 while hitless in his last 10 at-bats. St. Louis activated RHP Tyler Shaw from the disabled list. ... Cardinals 1B Matt Carpenter posted two hits after entering the game hitting .225. ... After hitting two homers in a 2-1 victory Wednesday, St. Louis CF and leadoff hitter Dexter Fowler went 0-for-5 with three strikeouts Thursday to drop his average to .169.