OAKLAND, Calif. (AP) - Guillermo Moscoso had no intention of giving up the ball easily. Oakland manager Bob Melvin had to wrestle it from him with two outs in the ninth inning.
Melvin appreciated Moscoso's competitive nature.
Moscoso held Kansas City hitless until rookie Salvador Perez singled with two outs in the eighth inning, and the Athletics beat the Royals 7-0 Wednesday.
"I guess my one bad pitch came in the last inning," Moscoso said. "They showed the last two games that they are good hitters and that just made me focus more. I was feeling great."
Moscoso (8-8) wound up allowing two hits in 8 2-3 innings. The right-hander walked one and struck out four in his 18th major league start.
"A lot of guys may have better stuff or better location that Guillermo but no one has a bigger heart," Melvin said. "The ninth inning was painful for me. I just couldn't stomach the fact he would throw 130 pitches. He wouldn't give me the ball. It was actually a wrestling match for a little while."
Moscoso set an Oakland record by retiring 30 consecutive hitters - the final 13 against Seattle last Friday and the first 17 against the Royals. He walked Kansas City's Alcides Escobar with two outs in the sixth.
"It was a great day for everybody," Moscoso said. "I always want to go deep into the game. This is something you never know if it will happen."
Perez broke up the no-hit bid by lining a clean, opposite-field field single to right.
Moscoso recorded 16 of his outs on fly balls to the outfield, 10 to center fielder Coco Crisp. Crisp's diving catch on Billy Butler's sinking liner ended the first inning.
"You have to take your hat off to that pitching performance," Royals manager Ned Yost said. "We've been swinging the bats really well. You know what? That kid threw a damn good game and that's just the way it is."
Butler's eight-pitch at-bat in the ninth ended with A's third baseman Scott Sizemore making two errors on the play. That prompted Melvin to bring in Fautino De Los Santos, who got the final out on one pitch.
Jemile Weeks had four hits and drove in a run for the A's, who won for the fifth time in seven games. Sizemore doubled home two runs and Hideki Matsui, Josh Willingham and Adam Rosales also drove in runs.
"He was putting the zeros up on the board," Weeks said. "I didn't even know he had one going until they got their first hit. He located every pitch and when he does that he usually has success."
Bruce Chen (10-7) allowed six runs on eight hits in his 6 1-3 innings.
"I felt like I was making my pitches but in the end we lost," Chen said. "Their pitcher did a good job and he beat us."
Crisp, after missing four games with a sore right foot, doubled in the first inning, stole his 40th base and scored on Willingham's sacrifice fly.
The A's added another run in the fourth when left fielder Alex Gordon misplayed Michael Taylor's fly ball into a two-base error, allowing Kurt Suzuki to score.
Earlier, Taylor lost a hit when he was thrown at first base by strong-armed right fielder Jeff Francoeur. The 9-3 putout was just the fifth in the AL since 1974.
NOTES: The Royals have a major league-best 48 outfield assists, 25 of them at home plate. Francoeur has 95 career outfield assists, most in the majors since he made his debut in 1995. ... A's IF Brandon Allen was given the day off. ... Melvin said he'll wait until after Thursday's off-day to decide if he wants to use an extra pitcher into the rotation, with LHP Josh Outman the leading candidate. ... RHP Brandon McCarthy (8-7, 3.41) will start for the A's at the Texas Rangers on Friday. McCarthy has thrown back-to-back complete games, including a three-hit shutout in his last start. ... RHP Luke Hochevar (10-10, 4.76) starts Thursday's game in Seattle for the Royals. Hochevar will pitch at Safeco Field for the first time. He's coming off an impressive victory in which he did not allow an earned run in eight innings. He's 5-2 with a 3.51 ERA since the All-Star break. ... Crisp became the 10th A's player to record 40 stolen bases in a season.