• Hero: Wainwright had a no-hitter through 5 2/3 innings before Kansas City's Esteban German singled. Wainwright ended the night after eight innings and allowing one hit and two walks while striking out three.
• Unsung hero: Pujols went 2-for-4 with 3 RBIs to pace the Cardinals 14-hit attack.
• Had your shot: Pujols, who went to high school just a few miles from Kauffman Stadium, was passed over on draft day by the Royals. The club was worried the first baseman would become overweight. Pujols hasn't forgotten, hitting .398 with seven homers and 23 RBIs in 83 at-bats in Kansas City.
• Quotable: "I went online and watched every out he got. I was not quite Verlanderish today. But I'll take it." -- Wainwright, on watching Tuesday's no-hitter by Detroit's Justin Verlander
-- ESPN.com news services
Cardinals 7, Royals 3
The St. Louis right-hander took a no-hitter of his own into the sixth Wednesday night, and shut out Kansas City on one hit through eight innings. The Cardinals held on for a 7-3 win.
"I went online and watched every out he got," said Wainwright. "I was not quite Verlanderish today. But I'll take it."
Albert Pujols drove in three runs for the Cardinals, who won for just second time in six games.
Wainwright (5-5) went eight innings and had allowed only two baserunners -- on a walk and an infield error by shortstop Aaron Miles -- when Esteban German broke up the no-hitter with a single into left with two out in the sixth. Wainwright struck out three and walked two.
Johnson started the ninth and gave up Gordon's fourth home run. Johnson retired only one batter and was replaced by Russ Springer, who got the final two outs.
Wainwright walked Mark Teahen, the third batter he faced, on a 3-1 count. But he did not allow another baserunner until Miles dropped a hard-hit sinking liner by David DeJesus with two out in the sixth.
German then grounded a clean single into left.
Miles had switched from second to short in the fourth after David Eckstein's lower back tightened up.
"It's a lonely feeling. I didn't want to look at the scoreboard," said Miles. "But they got the right call. I wish I'd made the play and got into the seventh inning for him and things came up a little differently."
Miles then retired the next batter with a fine leaping catch of Mark Teahen's line drive, and Wainwright wouldn't hear of it when he tried to apologize for not retiring DeJesus for the third out.
"I don't believe that changed anything," Wainwright said.
"I still felt locked in after the play. Then he made an amazing play to save a run. If he doesn't make that play, who knows? I'll take him in the field behind me any day. He shouldn't hang his head about that at all. It wasn't in the cards. God didn't want me to throw a no-hitter today. That's fine."
Pujols, who went to high school in Independence, Mo., just a few miles from Kauffman Stadium, singled home a run in the first off Odalis Perez (3-7) and then keyed a five-run second inning with a two-run single. The All-Star first baseman, who was passed on by the Royals in the 1999 draft because they worried he would become overweight, seems always to punish his home town team.
Pujols has a .398 average with seven homers and 23 RBIs in 83 at-bats in Kansas City.
Perez went three-plus innings and gave up seven runs -- six earned -- and 10 hits. He walked two and did not have a strikeout.
Pujols' bases-loaded single in the second inning brought in two runs, and he went to second when left fielder Joey Gathright's throw to the infield sailed wide for an error.
Juan Encarnacion then stretched his hitting streak to 13 games with a two-run single to make it 6-0.
Eckstein doubled leading off the game and scored on Pujols' single.
St. Louis manager Tony La Russa said he didn't know about Eckstein's status for Thursday, but the Royals may have lost two players for a while with injuries.
Reliever Brandon Duckworth left after throwing just two pitches in the fourth and designated hitter Mike Sweeney was replaced after stumbling and falling while running to first on a routine groundout in the bottom of the inning.
Sweeney had a back spasm while swinging during that at-bat, said manager Buddy Bell.
"I think it happened before [he fell]," said Bell. "He had actually had a back spasm after his swing when he was leaving the box."
Bell said Duckworth would probably go on the disabled list.
"So we're going to have to make a move. I don't know who that is right now."
The Royals purchased the contract of INF Fernando Cortez from Triple-A Omaha and sent OF Shane Costa to Omaha. Cortez was hitting .299 with 12 doubles, one triple, three homers and 19 RBIs. ... After this three-game series ends on Thursday, the Cardinals head for Oakland and their first-ever appearance in McAfee Coliseum.