SAN DIEGO -- James Shields is almost unbeatable on the road -- even when the road game is in his hometown.
The Kansas City right-hander, an offseason resident of San Diego County, blanked the San Diego Padres on seven hits over seven innings Wednesday, and the Royals cruised to an 8-0 win at Petco Park.
Royals first baseman Eric Hosmer drove in four runs with three singles, and Kansas City won two of three games in the interleague series.
"I don't think my stuff was that good today," Shields said. "I was erratic. I was all over the place. It was just a grind day, but sometimes you have to go out there without your good stuff and compete.
"That's what I did today."
The anticipated pitching duel between Shields and Padres right-hander Andrew Cashner never materialized. The Royals scored three in the top of the first, thanks to two errors by Padres shortstop Everth Cabrera, before Shields ever took the mound.
Shields (4-3) issued two walks, hit a batter and struck out four.
Wednesday's win boosted Shields' record to 13-1 in his past 16 road starts. His ERA in those games is 1.76. Both marks are the best in the major leagues over the time span.
The worst threat to Shields came in the second inning when the Padres had three singles. However, Hosmer's throw behind Cameron Maybin doubled the Padres center fielder off second base, ending the threat.
The Padres also failed to score with runners on first and second and one out in the fifth as they took their major-league-leading sixth shutout loss.
Cashner worked only four innings in his shortest outing of the season. He allowed four runs (two earned) on seven hits and two walks while striking out four.
However, he received little support offensively or defensively.
Cashner threw 43 of his 92 pitches in the first inning. Two of Kansas City's three runs in the first were unearned due to Cabrera's errors on two ground balls, either of which could have been turned into a double play. Cashner could have escaped the inning without allowing a run.
"We didn't help Cash at all in the first," Padres manager Bud Black said. "He had to work hard to get out of the first. When you are not scoring, you have to play defense. The defense put Cash behind the eight ball early."
Royals right fielder Nori Aoki opened the game with a single and reached second when Cabrera bobbled shortstop Alcides Escobar's grounder for his first error. Aoki and Escobar advanced on a double steal and scored on Hosmer's two-run single to right.
Second baseman Danny Valencia singled home Hosmer after Cabrera failed to field left fielder Alex Gordon's grounder to short. The inning finished with Cashner needing nine pitches to retire Shields on a grounder.
Compounding the Padres' problems was that they were shut out for the third consecutive time when Cashner started.
"Nothing went right today," said Cashner, whose record fell to 2-5 despite a 2.86 ERA. "We're in a team-wide funk. It's a long season, it will turn."
Things began to turn for Hosmer in San Diego. He also singled home runs in the sixth and eighth. Hosmer went 7-for-15 with a home run, a double and seven RBIs in the series.
"The biggest thing was coming up with runners in scoring position and getting runs in," Hosmer said. "That was huge for me."
Aoki and Valencia also had three hits for the Royals.
Maybin, catcher Rene Rivera and third baseman Alexi Amarista each collected two hits for the Padres.
NOTES: The Padres added RHP Hector Ambriz to the 40-man roster and promoted him after the bullpen worked 11 1/3 innings in back-to-back extra-inning games. Ambriz pitched two innings and allowed two runs (one earned) in Wednesday's loss. INF Jace Peterson was optioned to Triple-A El Paso to make room for Ambriz on the 25-man roster. ... The Royals won the final two games of the series after losing their first seven games at Petco Park in interleague play.