Jack Flaherty tossed six scoreless innings as the Cardinals topped the Brewers 5-2 in St. Louis.
Flaherty allowed just three hits in the win and Bud Norris closed out the save.
Marcell Ozuna and Kolten Wong had two RBI apiece and Jedd Gyorko hit a solo homer.
St. Louis has won nine of its last 10 games to move within a half game of the Brewers for the final NL wild card slot.
Milwaukee starter Freddy Peralta surrendered three runs over six innings to take the loss. Jesus Aguilar had a two-run single for the Brewers, who have dropped seven-of-10.