ST. LOUIS -- Billy Hamilton's speed might be the most fearsome attribute possessed in the major leagues, but it hasn't been used to its maximum during most of his first three full seasons in the majors because he hasn't gotten on base enough.
But the Cincinnati Reds center fielder is learning the value of patience, and it's enabling him to steal everything but his opponents' per diem.
Hamilton, who has nine steals in three games, is 20-for-22 in his career against St. Louis catcher Yadier Molina, generally considered the gold standard defensively for the last decade.
"You always look forward to going against the best," Hamilton said. "If he throws me out, I'll tip my cap to him. If I steal off him, he tips his cap to me."
There hasn't been much hat-tipping from Hamilton toward anyone lately. Hamilton is the first player with multiple steals in three straight games since Houston's Jose Altuve did it in four in a row during the 2014 season.
Hamilton, whose average sits at .258 after going 2-for-3, also drew two walks, giving him 26 in 329 at-bats. While that doesn't sound like a great number, his career high is a measly 34 during his rookie year.
"What stands out for me is his much-improved strike zone," Reds manager Bryan Price said. "He's giving really good at-bats. He's not expanding his zone and he's learning. It's a difference-maker."
Hamilton pilfered bases and scored in three of Cincinnati's four run-scoring innings. His speed also led to an error on St. Louis second baseman Matt Carpenter after an infield hit in the eighth, allowing Tyler Holt to score from second for a 6-4 lead.
With Hamilton running wild, the Reds (46-66) had all the right answers a night after coughing up a 4-0 lead with two outs in the ninth and losing 5-4.
Outhit 11-9, the Cardinals (59-54) again didn't give the look of a club battling for the National League's second wild-card spot. They issued five walks, made two errors in a game for the 17th time this year and also hit a batter.
The result dropped them to 3-5 in a nine-game stretch against two of the NL's last-place teams -- Cincinnati and Atlanta. They now sit a game behind Miami for the second wild card.
"We had trouble holding them down," St. Louis manager Mike Matheny said. "They outlasted us."
The Cardinals rallied from deficits of 3-1 and 4-3, but rookie reliever Matt Bowman (1-4) gave up four straight two-out hits in the eighth. Holt's double to left-center field snapped the tie and Zack Cozart's pop fly single to right center capped the inning.
Zach Duvall added a two-run single for the Reds and Joey Votto also knocked in a run. Reliever Michael Lorenzen (2-0) worked two innings for the win and Raisel Iglesias pitched a clean ninth for his first save of the season.
Neither starter was around for the decision. Cincinnati left-hander Brandon Finnegan allowed six hits and six walks in six innings but gave up just three runs, striking out five.
Cardinals right-hander Mike Leake also pitched six innings, allowing six hits and three runs with four walks and no strikeouts.
Price was proud of his team's resiliency.
"That's one of those losses that stays with you," he said of Monday night's defeat. "You have to win and get that good feeling back, and we did it. That one was more important than a simple win."
NOTES: St. Louis on Tuesday placed RHP Michael Wacha (right shoulder inflammation) on the 15-day DL and purchased the contract of RHP Alex Reyes from Triple-A Memphis. Reyes, who was 2-3 with a 4.96 ERA in 14 starts, worked a 1-2-3 ninth in his MLB debut with a strikeout. ... Cincinnati CF Billy Hamilton's 45th steal of the year on Monday night made him the first player in franchise history to do it in three straight years since Joe Morgan accomplished the feat from 1972 to 1977. ... To make room for Reyes, the Cardinals transferred C Brayan Pena (left knee inflammation) from the 15-day DL to the 60-day DL.