ST. LOUIS -- Daniel Descalso doesn't rank among the most heralded St. Louis batters, but a case can be made that he's one of Cardinals' best clutch hitters.
The reserve infielder offered another exhibit for that theory Wednesday night when he capped a four-run eighth inning with a tiebreaking, two-run single, giving the Cardinals a 5-3 win over the Kansas City Royals.
It was the 20th May victory for St. Louis (35-17), which upped its National League Central lead over the Cincinnati Reds and Pittsburgh Pirates to 2 1/2 games. The Cardinals entered the night 0-12 when trailing after seven innings this year.
Descalso completed the comeback when he slapped a first-pitch fastball from Aaron Crow (0-1) up the middle with the bases loaded, scoring Yadier Molina and David Freese to the delight of a sellout crowd of 43,477 at Busch Stadium.
"I just try to be ready to hit the first good one," Descalso said. "I like to be in that spot."
While it wasn't quite as dramatic as his game-tying, two-run single in the ninth inning of Game 5 of the NL Division Series last October in Washington, it provided another boost to a team already teeming with confidence.
"The guy plays the game the right way and prepares the right way," Cardinals manager Mike Matheny said of Descalso. "He just needs to keep doing what he's doing and he'll be fine."
Carlos Beltran lined a leadoff homer to right-center, his 12th of the season, to start the eighth. After Crow fanned Matt Holliday, he yielded consecutive singles to Allen Craig, Yadier Molina and David Freese, with Freese's hit tying the game.
Jon Jay was intentionally walked, and Pete Kozma looked at strike three for the second out. That set the stage for Descalso's dramatic hit, which only added to the Royals' recent woes.
It was the 18th loss in 22 games for Kansas City (21-29) and its eighth straight defeat. This might have been the toughest one to swallow.
"It's hard, man," shortstop Alcides Escobar said. "We played a great game and then the last inning, it happens. We just have to keep pushing, playing hard."
The Royals appeared to be in good shape prior to St. Louis' dramatic comeback. They got a decent start from Luis Mendoza, who left after 5 2/3 innings with a 2-1 lead, an unexpected offensive contribution from Mendoza and what appeared to be a key insurance run in their half of the eighth.
After Cardinals starter Lance Lynn retired the first nine men he faced on 32 pitches, throwing fastballs on 30 of them, Kansas City touched him for single runs in the fourth and fifth.
Alex Gordon led off the fourth with a single and moved to third when Escobar slashed a double off the glove of first baseman Craig. Lorenzo Cain's sacrifice fly to right scored Gordon, who slid head-first under Molina's tag at the plate.
The Royals made it 2-0 with a two-out RBI single from Mendoza, scoring David Lough. It was the first career hit for Mendoza, and it kept Kansas City from wasting Lough's leadoff triple.
After Holliday led off the sixth with his eighth homer, a 430-foot bolt to left-center, Kansas City restored a two-run lead in the eighth on George Kottaras' infield out that scored Mike Moustakas.
The Cardinals' late rally made a winner of Randy Choate (1-0), who retired the last batter in the top of the eighth. Edward Mujica picked up his 17th save -- and fourth in as many days -- by throwing only six pitches in a 1-2-3 ninth.
"We haven't had to come back a lot," Descalso said. "We've been playing well in all aspects of the game. A win's a win, but it's nice to get a comeback win like this."
NOTES: Kansas City had to bus four hours across Missouri on I-70 after Tuesday night's game when its plane was grounded due to mechanical problems. The Royals arrived at their downtown St. Louis hotel around 4:30 Wednesday morning. ... St. Louis RHP Chris Carpenter threw about 25 pitches Wednesday in a side session and said his right arm felt fine afterward. Carpenter has slowed the pace of his rehab a bit, but he still hopes to come back later this season from nerve irritation. ... Cardinals RHP Jake Westbrook (right elbow inflammation) is set to throw a bullpen session Thursday. Westbrook canceled a Tuesday visit to Dr. James Andrews after throwing 40 pitches Monday and reporting no pain.