OAKLAND, Calif.-- The Royals needed Ryan Shealy's bat and defense, and he came through on short notice.
Shealy came off the disabled list to hit a go-ahead RBI single in the ninth inning, lifting Kansas City to a 4-3 victory over the Oakland Athletics on Wednesday night.
The Royals just wished they could have earned Odalis Perez a win in the process.
After Esteban German drew a one-out walk, John Buck's run-scoring double tied the game. Pinch-runner Paul Phillips then scored on Shealy's second hit of the night.
Shealy, who had been out since May 1 with a strained left hamstring, had his minor league rehabilitation stint cut short after the Royals lost first baseman Ross Gload to an injury Monday.
"This game is so crazy," said Shealy, who flew from Wichita, Kan., to the Bay Area by way of Denver. "This is probably the least prepared I've felt for a game. Now, I'm like, thank goodness I'm back. It's a good feeling to contribute."
Kiko Calero (0-3) entered in the ninth for the A's -- who are dearly missing injured closer Huston Street -- and blew his second save in two chances when he allowed hits to Buck and Shealy before giving way to Alan Embree.
"Right now we know Huston is going to be out," Calero said. "You have to be ready."
The A's had gone ahead in the eighth on Jack Cust's seventh home run in just 10 games, a solo shot to center off Jimmy Gobble (3-1) with one out. It was Cust's sixth homer in the last seven games after he had his streak of four consecutive games with a homer snapped Monday night. He was acquired May 3 in a trade with San Diego to replace injured designated hitter Mike Piazza.
David Riske finished for his third save.
Not much separated the starts of Perez and Oakland's Joe Blanton.
Perez, who has remade himself since coming to the Royals from the Los Angeles Dodgers last season, is pitching his best ball in three years. He is healthy and gaining confidence with each strong start.
Perez pitched six shutout innings and allowed one hit, struck out four and walked two.
"I'm just happy to be pitching the way I'm pitching," he said. "I feel good. I feel happy. I feel healthy. I'm happy with the opportunity I'm getting here. These guys believe in me."
Blanton struck out seven in eight innings and retired 20 straight Kansas City batters after Shealy's leadoff single in the second.
Oakland's Jason Kendall hit a tying, two-run single in the seventh off Joel Peralta, though only one of the runs was earned after Gold Glove second baseman Mark Grudzielanek misplayed Hiram Bocachica's shallow fly in right for an error.
Kendall was a most unlikely candidate to break up Perez's no-hit bid, too. He doubled over right fielder Mark Teahen's head leading off the sixth.
The A's No. 9 hitter came into the game batting .177, in an 0-for-10 stretch and 2-for-16 on the homestand. He hadn't had an extra-base hit since doubling in the second game of the season April 3 at Seattle - a span of 123 at-bats.
Perez, a left-hander who turns 30 on June 11, made quite an impression in his first career start against the defending AL West champions. He struck out four and walked two in a 96-pitch performance. He had faced Oakland in a relief appearance last June 18 with the Dodgers.
Still, Perez saw his winless stretch reach four starts since he beat the Twins at Minnesota on April 25. He walked two in the first, then cruised the rest of the way.
The Royals quickly jumped on Blanton, who had a 24-pitch first inning and already trailed 2-0.
"He never found that rhythm in that inning, and then he did," A's manager Bob Geren said. "Once he got a fresh start, he looked like all his other starts. Everything about his demeanor changed."
Oakland's Dan Johnson had his AL-leading 15-game hitting streak snapped, while Royals No. 9 hitter Tony Pena Jr. followed his career-best four-hit game with an 0-for-4 showing with two strikeouts.
Geren gave Gold Glove third baseman Eric Chavez his first day off this season, a necessary break according to the skipper during a stretch with 16 straight games without a day off -- but he entered as a pinch-hitter in the ninth and grounded out to end the game.
Kansas City's starters have a 1.66 ERA and .199 opponent batting average on the road trip, but are only 1-1 in that span despite five quality starts. Their overall ERA dropped to 3.92. ... Oakland placed OF Chris Snelling on the 15-day DL with a deep bone bruise in his left knee. The move is retroactive to May 11, and the A's called up Bocachica from Triple-A Sacramento and put him in the starting lineup in CF. OF Bobby Kielty was transferred to the 60-day DL. ... The Royals are unbeaten in their last five Wednesday games.