The Cardinals moved into a tie for first place in the NL Central with Milwaukee, which lost at Boston.
Pujols was injured in the sixth and the three-time NL MVP left the game. He will be evaluated on Monday, a day off for St. Louis.
"To be honest, I can't give you guys too much until the X-rays and an MRI tomorrow," said Pujols, whose left wrist was tightly wrapped. "I know I'm pretty sore. Am I worried? Of course. Hopefully, everything will come out negative tomorrow. When I come out of a game, believe me, something is really wrong.
|More on Royals at Cardinals|
"Hopefully, cross our fingers and I'll be all right."
General Manager John Mozeliak said no roster moves are being planned.
"We will know something tomorrow and go from there," Mozeliak said. "Right now, he will be tested in the morning and we'll see."
Manager Tony La Russa said he experienced a range of emotions when he saw his first baseman go down.
"It scared the hell out of all of us," La Russa said. "It smoked him pretty good. The doctor said he has good strength so that makes us kind of optimistic. First indications are that we caught a break."
Wilson Betemit hit a chopper up the middle off Cardinals starter Jamie Garcia. Second baseman Pete Kozma backhanded the ball and made a jump-throw to first, pulling Pujols off the bag. As the slugger tried for a tag, Betemit ran into his glove hand and Pujols went down to the ground in pain.
"He hit me on my wrist and my shoulder," Pujols said. "He kind of jammed me back. It's the toughest play to make as a first baseman. It's a bang-bang play. I saw the replay a couple of times, but I didn't really want to look at it."
The collision was unavoidable, Betemit said.
"I was running hard and the ball arrived at the same time I got to the base," Betemit said. "I couldn't do anything about it. He hit me on my left arm, that's why he dropped the ball. I hit him and then I saw him on the ground. That's part of the game. I couldn't do anything about it."
Pujols, hitting .279, was 3 for 3 with his 17th home run. The fifth-inning shot gave St. Louis a 3-2 lead.
Lance Berkman, who had been given a rest Sunday, replaced Pujols at first.
Leading off the ninth, Alcides Escobar hit his first home run on a 3-2 pitch from St. Louis reliever Fernando Salas, who threw 10 pitches in the at-bat. It was Escobar's first homer in 325 at-bats and it tied the game at 4. It marked just the second blown save in 15 attempts for Salas (4-1).
After leadoff hitter Dan Descalso got thrown out trying to stretch a single, Schumaker connected off Tim Collins (3-4), the fifth Royals pitcher.
It was Schumaker's second game-ending homer, the first coming in 2008, and his first home run since April 13.
"I'm not sure there's a better feeling than hitting a home run walk off," Schumaker said. "It doesn't happen too often, home runs in general, so I'll take it."
It was also Schumaker's first major-league home run off a left-hander.
"I was disappointed I was out of the game and I didn't get to punch Schumaker in the ribs after the walk-off," Pujols said.
Schumaker hit Collins' second pitch.
"He was obviously sitting fastball," Collins said. "He got it and he hit it. It might have been a little bit over the plate. I was trying to get back into the count."
Schumaker got his first RBI as a pinch-hitter this year, driving in Andrew Brown in the sixth to put St. Louis ahead 4-3.
Cardinals reliever Miguel Batista pitched out of a jam in the seventh with two on and no outs. After getting a flyout, Batista got Jeff Francoeur to sharply line out to Schumaker at second and Melky Cabrera was doubled off first.
Royals rookie left-hander Danny Duffy left in the fourth inning with cramps in his left calf. He struck out nine in 3 2-3 innings. He threw 90 pitches. Duffy allowed six hits and a walk.
Kansas City took a 1-0 lead in the first on an RBI double by Billy Butler, who was making his first start after pinch-hitting in the first two games of the series. Butler is the Royals' designated hitter.
The Cardinals scored twice in the first when Brown, making his second major league start, hit a bases-loaded single.
The Royals tied it in the second on Alex Gordon's two-out RBI single.
Kansas City tied it at 3 in the sixth when Escobar's squeeze bunt scored Betemit.
- A first-inning error by Descalso at 3B was the 47th error this season in 73 games for St. Louis. The Cardinals have made 10 errors in their last six games.
- The Royals concluded a 4-5 road trip.
- Garcia batted eighth, marking the fourth time a Cardinals pitcher hit eighth this season. Garcia has done so three times.