ST. LOUIS -- Short notice brought out Brad Thompson's best.
The first-year starter worked seven strong innings a day ahead of schedule and three days after a two-inning relief stint, leading the pitching-starved St. Louis Cardinals to a 5-1 victory over the Kansas City Royals on Tuesday night.
"I haven't really figured out the whole starting thing yet, in the first place," Thompson said. "So it wasn't that bad. I still had two days full rest."
Thompson started in place of Kip Wells, who was told three hours before the game that he was being sent to the bullpen. Wells leads the major leagues in losses and lasted only 1 1/3 innings in his last start at Kansas City, giving up six runs, three hits and four walks.
Thompson and relievers Randy Flores and Ryan Franklin worked fast, with the game time of 2 hours and 10 minutes the team's shortest of the season.
"He was really effective," manager Tony La Russa said. "He had great movement and pitched with terrific pace as far as keeping the team in the game.
"I was kidding him we'll start him on Saturday."
Chris Duncan homered for the third time in five games, and Albert Pujols and Scott Spiezio had an RBI apiece for the Cardinals, who won for only the fifth time in 14 interleague games.
Thompson (5-2) dominated the Royals a week after surrendering eight runs on 10 hits in 4 1/3 innings in Kansas City. He allowed a run on seven hits, two each by Emil Brown and Alex Gordon, while striking out three and walking none.
Thompson and Todd Wellemeyer had been listed to pitch on Wednesday and Thursday, but were moved up a day. Wells, who signed a $4 million, one-year contract as a free agent during the offseason, is set to start on Sunday against the Philadelphia Phillies.
Duncan is 3-for-4 with three homers and seven RBI against Scott Elarton, and his 13th homer was a two-run shot to straightaway center in the second for the game's first runs. Elarton was removed in the third just before Duncan could face him again, and Duncan added an RBI single off Neal Musser to cap a three-run rally that made it 5-0.
"I know I've had success against him, and it just seemed like I see the ball pretty good off him," Duncan said. "I was confident going into the game."
And disappointed when Elarton got yanked.
"A little bit," Duncan said. "What can you do?"
Duncan has 12 RBI in his last five games. Pujols added a sacrifice fly and Spiezio had a run-scoring single in the inning.
Fernando Cortez doubled with one out in the seventh and scored on pinch-hitter Joey Gathright's single for the Royals.
Elarton (2-3) faced the Cardinals for the second consecutive start, and both of them have been brief. He allowed five runs on five hits and a walk in 2 2/3 innings after giving up six runs in two innings on June 14 and getting no decision in a 17-8 victory.
"It was just bad, once again," Elarton said. "I'm healthy, but tonight the off-speed pitches hurt me. All of them were up."
Manager Buddy Bell speculated that Elarton may have a "dead arm."
"His command is not where he wants it to be," Bell said. "We'll have to think this thing through and do what's best for everybody concerned."
Juan Encarnacion was 0-for-4 with two strikeouts to end an 18-game hitting streak, the Cardinals' longest this year and one game off his career best.
So Taguchi singled in the third and is batting .462 with six RBI (18-for-39) during a 12-game hitting streak that matches his career best in 2005. ... Brown has four multihit games during a five-game hitting streak, batting .500 (10-for-20) with seven RBI during that stretch. ... The Royals are 9-5 in interleague play, taking three of five from St. Louis. ... The Cardinals are 6-2 in Thompson's starts.