Cardinals 9, Brewers 3: Joe Kelly worked 5 2/3 innings to halt a personal four-game losing streak and snapped a tie with an RBI single in the fourth as host St. Louis posted its third win in four contests.
Yadier Molina collected three hits, scored twice and stole two bases while David Freese and Daniel Descalso each drove in a pair of runs as the Cardinals remained four games behind Atlanta for the second wild-card spot in the National League.
Kelly (2-4) yielded three runs and 10 hits en route to his first win since June 22 at Kansas City. The 24-year-old rookie, who walked two and struck out four, has allowed three runs or fewer in each of his 10 career starts.
Milwaukee tagged Kelly for three runs in the second inning as counterpart Randy Wolf hit a two-out, two run single and Norichika Aoki followed with an RBI base hit. But Freese delivered a two-run single and Descalso an RBI double in the fourth before Kelly put the Cardinals ahead for good with his base hit.
A pair of errors in the sixth allowed two more runs to score, and Descalso and Matt Holliday each had an RBI single during a three-run eighth to cap the scoring.
Wolf (3-8) surrendered five runs and nine hits over 5 1/3 frames. The veteran left-hander fell to 1-6 over his last 16 starts.
Ryan Braun collected three hits for the Brewers, who had their three-game winning streak snapped.
GAME NOTEBOOK: Milwaukee C Martin Maldonado made three throwing errors, including one on each of Molina's stolen-base attempts. ... St. Louis placed 1B Lance Berkman on the 15-day disabled list with inflammation in his right knee. It marked the third time this season Berkman has been shelved. The Cardinals recalled OF Shane Robinson, who went 1-for-3 with a run scored. ... SS Rafael Furcal and Molina were back in St. Louis' lineup. Furcal missed five games with stiffness in his back, while Molina sat out one contest with a bruised right thumb. ... Brewers 3B Aramis Ramirez was held out of the starting lineup with a sore left wrist.