KANSAS CITY, Mo. -- Roger Clemens one night and Roy Oswalt the next was too tough of a combination for the Kansas City Royals.
Clemens and three relievers shut out the Royals on Friday night.
"That's a tough one-two punch, Oswalt and Clemens," Royals center fielder David DeJesus said. "When they are scoring runs early, it's even tougher because those guys pick up steam. It was tough to lay off his fastball, and it was 95 (mph) and he was throwing it where he wanted it."
Oswalt, who pitched a two-hit shutout against the Toronto Blue Jays in his previous start, held the Royals to one run and seven hits. Oswalt (8-7) earned his first road win since April 15 at Cincinnati and lowered his ERA to 2.72.
"I thought Clemens was great last night, but I thought Oswalt had the best stuff that I've seen all year long," Royals manager Buddy Bell said.
Oswalt, who needed only 55 pitches through the first five innings, pitched out of a jam in the sixth. David DeJesus walked with two outs and stopped at third on Terrence Long's double to left, but Matt Stairs lined out to Oswalt to end the inning.
Oswalt lost his shutout in the eighth when Long's two-out single scored Angel Berroa. Oswalt had not allowed a run in 16 innings, and the Royals had not scored in their previous 17 innings.
"I was hoping to get another shutout, especially that late in the game, only four more outs to get," Oswalt said.
The late-afternoon start and Kauffman Stadium shadows also worked in Oswalt's favor.
"One thing I noticed when I walked out there was the sun backdrop," Oswalt said. "I knew it was going to be hard to pick up the ball early in the game. I threw a lot of fastballs early, trying to get through the innings as quick as possible so maybe I could get to the sixth or seventh and still have the sun back there. I went right after them."
Astros manager Phil Garner called Oswalt's performance "pretty nice."
"He had a nice rhythm, a nice tempo and threw a lot of strikes," Garner said.
Taveras led off the game with a single and advanced to second on Long's fielding error. Craig Biggio bunted Taveras to third and Morgan Ensberg hit a sacrifice fly. Ensberg has 14 RBI in his past 13 games.
Taveras had three hits, walked and reached on an error. He is hitting .423 in June.
"I just try to get on base," Taveras said. "Some days you're not going to get on. Today was a day I got on."
D.J. Carrasco (2-2) gave up three runs and seven hits with five walks over seven innings for his team-leading sixth quality start. Carrasco, who began the season as a reliever in the minors, had allowed just three runs in 27 innings in his previous four starts.
"I'm not pleased with the way I pitched as far as control," Carrasco said. "I was struggling with my control."
Taveras walked to lead off the third and scored on Biggio's double. Taveras had a bunt single in the seventh, moved to second on a fielder's choice and scored on Mike Lamb's single.
The Astros scored three runs -- two unearned -- in the eighth off Jeremy Affeldt. Chris Burke's single scored Lane with the first run of the inning. Ruben Gotay's error on Taveras' grounder allowed Brad Ausmus and Burke to score.
DeJesus was lifted for a pinch hitter in the eighth inning after he strained his left elbow making a throw. "It tightened up on me, hopefully I'll get treatment and play Sunday," he said. ... The Astros have won eight straight games in Kansas City. ... Royals 1B Mike Sweeney, who missed his third consecutive game with a sprained left wrist and elbow, will attempt to take swings Sunday. ... Royals RHP Scott Sullivan, who has been on the disabled list all year with a bad back, threw a simulated game Saturday and will likely begin an injury rehab program soon with Triple-A Omaha. ... Taveras leads the majors with 28 infield hits and 13 bunt singles.