SCOTTSDALE, Ariz. -- Alex Gordon insists his swing doesn't feel comfortable yet.
Hard to take him seriously after Wednesday.
The Royals outfielder had three hits, including a fifth-inning grand slam, and James Shields pitched three scoreless innings to help Kansas City beat the Arizona Diamondbacks 8-1 and remain the only unbeaten team in spring training.
"I mean, it's still early," said Gordon, who also threw out a runner trying to reach third base. "Just because you get results doesn't mean you're where you want to be. Results are great and get your confidence going, but I still have stuff to work on."
Gordon signed a four-year, $37.5 million deal last season, and proceeded to hit .294 with 14 homers and 72 RBIs while winning his second consecutive Gold Glove in left field. But he said his swing had been a bit balky early this spring, and it's only now beginning to round into shape.
"Little better, but it's still early. We still have a lot of time to work," he said. "It's feeling better, but it's not where I want it to be."
The Royals certainly appear to be where they want to be.
Kansas City is 11-0-1 in the Cactus League.
"Winning is contagious," Shields said with a smile. "It makes you feel good as a player, makes you feel good as a team, that you're playing good baseball."
Shields, the Royals' new ace, allowed three hits and struck out two. He didn't allow a walk while throwing 24 of 38 pitches for strikes in his second spring start.
"Success is just being healthy and going out there and throwing your pitches, throwing your innings," he said. "You want to have success in spring training, but the main goal is to have arms in shape for the regular season."
Cahill had a shaky start for the Diamondbacks, loading the bases in the first inning but limiting the damage to one run. He wound up allowing six hits in 2 2/3 innings.
"It went all right," Cahill said. "They just hit my mistakes, I guess. I'm working on getting guys out. I didn't throw any curveballs my last time, so I made sure to throw some today. It was working in the bullpen. It seems my sinker was a little bit up."
Diamondbacks manager Kirk Gibson said Cahill and reliever Pat Corbin, who served up Gordon's grand slam, couldn't keep the ball down in the strike zone.
"Trevor and Pat both got into deep counts, not enough strikes and they got into trouble," he said. "Trevor's ball was all over the place. It didn't seem like he had his command at all."
The Diamondbacks only run came on a single by former Royals first baseman Kila Ka'iahue.
By that point, the game was well in hand.
Escobar and Billy Butler singled with one out in the first inning, and Francoeur's base hit gave Kansas City a 1-0 lead. The Diamondbacks tried to answer in the bottom half when Adam Eaton singled and reached second on an error, but he got caught in a run-down between second and third.
Royals third baseman Mike Moustakas delivered the tag on Eaton, but he got popped in his upper lip in the process and had to seek help from a trainer to stop the bleeding.
Moustakas wasn't happy about it, either.
"Just a guy who doesn't have a feel for the game," he said tersely.
The Royals added a run in the fourth when Gordon doubled and Escobar tripled over the head of Arizona center fielder Tony Campana. They then blew the game open in the fifth when Lorenzo Cain walked, Chris Getz and Willy Taveras singled and Gordon hit his grand slam to deep center.
Gordon said he was waiting on a fastball after working a 3-1 count with the bases loaded, and he pounded the pitch over the 410-foot sign painted on the center field wall.
"Bases loaded, you know? I've always been told to just step out, relax yourself and not try to do too much," Gordon said. "Sometimes you put a good swing on it and that's what happened."
Butler started at 1B in place of Hosmer. ... Royals LHP Will Smith, competing for a spot on the roster, worked two scoreless innings. ... Ka'iahue finished 2 for 2 for Arizona.