Mike Moustakas homered and Keston Hiura drove in a pair of runs to lead the reeling Brewers to just their third win in the last nine, 5-3 over the Cardinals on Wednesday night.
The game was stopped after 7 1/2 innings and made official following a rain delay of 66 minutes.
Milwaukee broke a six-game losing streak against the Cardinals, who were knocked out of first place in the NL Central - falling one-half game behind the Cubs. Chicago beat San Francisco 12-11.
The Brewers are in third, 3 1/2 behind the Cubs.
Milwaukee lost four of the first five in the six-game trip including the opening two of the three-game set to the Cardinals.
Adrian Houser (6-5) gave up three runs - one earned - and six hits in 5 1/3 innings.
Junior Guerra got the last out in the bottom of the seventh and earned his third save.
Moustakas, who also walked three times, hit a three-run homer in the first off Adam Wainwright (9-9) to highlight a four-run outburst. Hiura had run-scoring hits in the first and fourth innings for a 5-0 lead.
Wainwright gave up five runs and eight hits over five innings.
St. Louis capitalized on a pair of errors to climb to 5-2 in the fifth. Yadier Molina's double brought the Cardinals to 5-3 in the sixth.
Miles Mikolas (7-13) squares off against Colorado RHP German Marquez (12-5, 4.71 ERA) on Thursday in the first of a four-game set in St. Louis. Mikolas is 0-0 with a 5.40 ERA in four career appearances vs the Rockies.