Royals shortstop Alcides Escobar is known for his fielding. Lately, he has been doing plenty of damage with his bat.

Against the St. Louis Cardinals Friday night, Escobar had two hits with a run scored in Kansas City's 5-4 win. He also was part of the key play of the game: His hard groundball with two outs in the eighth inning eluded Albert Pujols and allowed Mike Moustakas to score the go-ahead run.

Pujols, a Gold Glover, was given an error on the play. Kansas City manager Ned Yost thought Escobar, who is 14 for 24 (.583) over his last seven games with eight runs scored, could have been credited with a hit.

"I don't know how that's ruled an error," Yost said. "That's a pretty tough hop, a pretty tough ball."

It's the kind of play that has been hurting Cardinals, who have lost seven straight.

"The ball was hit pretty good and it just came up on me," Pujols said. "That's the way it goes. It's a play you probably make 99 out of 100 times. If we would have been on a winning streak, I don't think a crazy thing like that would happen."

Much to Yost and the Royals' chagrin, Pujols had a chance to atone for the miscue in the ninth when Jon Jay singled off of Kansas City closer Joakim Soria with two outs to bring Pujols up to the plate. But after running the count to 3-0, Soria got Pujols to ground into a 5-4 fielder's choice to end the game.

"I tried to throw my best pitches to him," said Soria, who earned his 11th save in 16 chances. "I got behind because I was trying to throw too perfect. Then I figured out I had to throw a strike at some point, because if it's not him it's (Matt) Holliday and if it's not Holliday it's (Lance) Berkman."

Soria had lost his closer's role earlier this year, but seems to have earned his way back into Yost's good graces.

"I got so much confidence in (him); I thought he would find a way to get us through it," Yost said.

Pujols' error made a hard-luck loser out of Chris Carpenter, who appeared to have pitched around a walk to Moustakas leading off the eighth inning when he induced Escobar to hit a grounder to Pujols. Carpenter (1-7) allowed 10 hits and four runs over eight innings. He struck out seven and walked one.

"I'm not going to sit here and fret on what's going on," Carpenter said. "I went out and did the best I could tonight. I can go home and look at myself in the mirror and say that I did the best I could."

Blake Wood (3-0) pitched a scoreless seventh inning for Kansas City.

Berkman drove in three runs for the Cardinals with a bases-loaded double in the third.

Berkman's double gave St. Louis a 4-3 lead. Kansas City tied it in the fourth when Royals starter Felipe Paulino laid down a sacrifice with one out and runners on first and third. Chris Getz scored when Cardinals catcher Tony Cruz tried to retire Escobar at second and Paulino was credited with an RBI.

The Royals had built a 3-0 advantage on a first-inning RBI single by Jeff Francoeur and a two-run single by Alex Gordon with two outs in the second.

NOTES: Kansas City rookie Eric Hosmer, who went 1 for 5, is batting .197 on the road (15 for 76) as opposed to .365 at home (31 for 85). ... Carpenter threw 124 pitches, his most since hurling 125 on October 6, 2001, while with the Blue Jays. ... Paulino, the first Royals' pitcher to step to the plate this year, had two sacrifices in his two at-bats. Royals pitchers went 2 for 16 last year in National League parks. ... St. Louis shortstop Tyler Greene's sixth inning single ended an 0-for-13 skid. ... Paulino has not won since beating the Cubs 3-1 on June 4, 2010, a span of 31 outings (eight starts). ... Berkman, who had just 58 RBIs last year with the Astros and Yankees, has 51 RBI in his first 61 games as a Cardinal.