ST. LOUIS -- Tyler Thornburg couldn't win a game in the Pacific Coast League. As for the National League, that's another story.
The Milwaukee right-hander turned in his fifth straight quality start on Thursday night, allowing three hits and two runs in six innings as the Brewers posted a rare win over St. Louis with a 5-3 victory at Busch Stadium.
Thornburg (2-1) walked two and struck out six, becoming the first pitcher since July 12 to hang a loss on Cardinals right-hander Joe Kelly (8-4), who had won eight straight decisions. The result also dropped St. Louis (85-61) into a first-place tie in the National League Central with Pittsburgh, a 3-1 winner earlier Thursday over the Chicago Cubs.
It was just Milwaukee's fourth win in 16 games this year against the Cardinals.
"We played a good game," Brewers manager Ron Roenicke said. "We played three good games here, but we didn't finish the first two. It was important to get a win."
They got it because of Thornburg, who was called up from Nashville on June 29 despite horrendous numbers. Even by the PCL's hitter-friendly standards, Thornburg's stat line was especially lurid: An 0-9 record, a 5.79 ERA and 119 base runners in 74 2/3 innings.
"If my season had ended after 15 starts," he joked, "I probably would have killed myself."
Instead, Thornburg joined the big club and got some tips on mental preparation from veterans like Mike Gonzalez and Kyle Lohse. He also started throwing his low 90s fastball, curve and change in the bottom of the zone, getting the outs he couldn't get in venues such as Albuquerque, Colorado Springs and Tucson.
Thornburg retired nine of his first 10 men before giving up his only runs in the fourth on Matt Holliday's RBI double and David Freese's sacrifice fly. After a 1-2-3 fifth, Thornburg finished with some clutch pitching against the middle of the league's highest-scoring lineup.
After hitting Jon Jay and walking Holliday with one out, Thornburg faced Carlos Beltran and Freese with a crowd of 35,208 pleading for a rally. Beltran lined to right on the first pitch and Freese bounced out to third on a full-count curve.
"It's one of those situations that's make-or-break in a particular game," Thornburg said. "If they get a hit, they might get a big inning and win. Honestly, it felt great to get out of that inning."
Three relievers got the last nine outs, with Jim Henderson bagging his 25th save despite yielding a two-out solo homer to Matt Adams in the ninth.
Offensively, Milwaukee (63-82) pecked away at Kelly, scoring in three of the first four innings for a 4-0 lead. First baseman Sean Halton produced an RBI single in the second, then belted a two-run homer in the fourth to highlight his 2-for-4, three-RBI evening.
Kelly gave up seven hits and three earned runs in five innings, walking one and striking out four. He also committed two throwing errors in the second innint, with the first costing him an unearned run.
"You go back and see what pitches you have to make," Kelly said. "Ultimately, you've got to forget about it and get ready for your next start."
The Brewers tacked on insurance in the ninth when Norichika Aoki slapped a triple to center, scoring pinch-hitter Yuniesky Betancourt from first.
NOTES: St. Louis C Yadier Molina and his brother, assistant hitting coach Bengie Molina, weren't at the ballpark for a second straight night. They were with their mother, who was recovering from surgery in a St. Louis-area hospital. Both Molinas are expected to return for Friday night's game with Seattle. ... Cardinals RHP Trevor Rosenthal was also unavailable because his wife was in labor with the couple's first child. ... Milwaukee gave SS Jean Segura the night off in favor of Jeff Bianchi. Roenicke said he decided Segura needed a rest when he chased a 3-2 pitch in the dirt from Rosenthal for a strikeout in the eighth inning on Wednesday night. ... From the believe-it-or-not file: All three games in the series lasted three hours and two minutes.