St. Louis (73-53) takes the series from Milwaukee with the win Wednesday, and are back within one game of Pittsburgh in the National League Central standings.
The Cardinals scored six runs in the second inning, thanks to three extra base hits in the frame. Westbrook doubled to left center with the bases loaded to score David Freese and Shane Robinson. Two batters later, Beltran followed Matt Carpenter's sacrifice fly with a two run home run. After a Matt Holliday strike out, Craig hit a solo home run to open a 7-0 lead.
The Brewers began chipping away at the deficit in the third with a three run home run from Aramis Ramirez. Milwaukee got within two runs in the fifth after RBI singles from Juan Francisco and Sean Halton.
Holliday added some insurance with a solo home run in the top of the ninth inning.
Edward Mujca gave up one run in the ninth on his way to his 33rd save of the season.
Jake Westbrook took the no-decision despite getting a big lead from his offense. The St. Louis starter went 4 2/3 innings giving up five runs - four earned - on nine hits.
Kevin Siegrist got the win striking out two batters in 2/3 of an inning.