Travis Shaw, Eric Thames and Jett Bandy each clubbed long home runs as Milwaukee slugged its way to a 7-5 victory over St. Louis at Miller Park.
Shaw and Bandy extended homer streaks to three games, while Thames hit his seventh homer in his past eight contests.
Milwaukee (9-8) leads the majors with 32 round-trippers.
Brewers 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.
Jacob Barnes, normally the seventh-inning man, pitched the ninth for his first save of the season and the second of his career. Late-inning reliever Corey Knebel and regular closer Neftali Feliz both recorded extended pitch counts Wednesday.
Matt Carpenter's solo homer in the fifth gave the Cardinals 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) for his major league-leading eight home run.
Shaw's three-run homer in the first gave the Brewers a 3-0 lead, but a bases-clearing triple by Kolten Wong tied it in the second.
After Thames gave the Brewers a 5-4 edge, the Cardinals quickly threatened to tie it. Jedd Gyorko led off the sixth with a high drive to the right-field corner off Milwaukee starter Zach Davies. Domingo Santana raced over and got a glove on the ball but couldn't hold on.
Davies got Randal Grichuk on a grounder to third, and Brewers manager Craig Counsell summoned Oliver Drake from the bullpen. Drake did the job, inducing a grounder to first by Kolten Wong and striking out pinch-hitter Matt Adams.
Kevin Siegrist came on in relief of Carlos Martinez to start the sixth and immediately found trouble. He walked Kirk Nieuwenhuis -- hitting .043 entering the game -- and served up a long home run to No. 8 hitter Bandy.
The Cardinals(6-10) put two on with two out in the seventh against Drake, but Jhan Marinez needed only one pitch to get a fielder's-choice grounder from Yadier Molina.
Jedd Gyorko touched Marinez for his third homer of the season on the first pitch of the eighth inning to cut it to 7-5.
The Brewers scored in the first inning for the fourth straight game. Jonathan Villar slapped a single to left and moved to second when first baseman Carpenter couldn't handle a pickoff throw.
Thames followed with a single to left, moving Villar to third. After Ryan Braun struck out, Shaw crushed an 88-mph changeup off the facing of the third deck in right that traveled an estimated 458 feet.
The blast equaled the three runs Cardinals' pitching allowed in a three-game sweep of the Pittsburgh Pirates -- all 2-1 victories.
Molina singled to lead off the second and moved to third on Jed Gyorko's double over Braun's head in left. Grichuk walked and Wong laced a triple into the right-field corner.
Davies buckled down from there, getting Martinez on a soft grounder to second and striking out Dexter Fowler and Aledmys Diaz.
NOTES: 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. He is batting .415. ... Milwaukee 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 the Cardinals' 2-1 victory Wednesday, CF and leadoff hitter Dexter Fowler went 0-for-5 with three strikeouts Thursday to drop his average to .169.