PHOENIX -- When rookie Mike Aviles arrived at Chase Field on Saturday, he had nine major league hits.
Aviles said he came to the plate in the eighth knowing he needed a triple for the cycle. He flied out to center.
"It's physically impossible to try and hit a triple," Aviles said. "I knew I needed it, but for me actually winning the game is a little more important than hitting for a cycle. It's not that big of a deal to me."
Playing in his 10th career game, Aviles doubled twice and singled against Johnson, then homered off reliever Billy Buckner.
Aviles wasn't the only Royal teeing off against the Big Unit (4-4). Johnson gave up eight runs, seven of them earned, and 10 hits in 4 1/3 innings. Johnson has 288 career victories but is winless in his last five starts.
"It was just a poorly pitched game on my part," Johnson said. "For the most part, I was just too much over the plate with less stuff than I've had in the past."
Kansas City, last in the AL Central, had 12 runs on 17 hits, both season highs.
"It's nice for us to see, obviously," Kansas City manager Trey Hillman said. "We haven't seen that very often."
The Royals' eruption provided plenty of support for Luke Hochevar (4-5), who won for the first time since May 14, a span of six starts.
Hochevar, the first overall pick in the 2006 draft, allowed three runs, two earned, and 10 hits in seven innings. He struck out six and walked none.
"He was in command and control most of the time," Hillman said.
But the big story on this night was the 27-year-old Aviles, who was seven years old when Johnson made his big league debut in 1988. Aviles entered the game hitting .290 (9-for-31).
"He's still tough to hit, I can tell you that much," Aviles said. "You get in that box, he's very intimidating. He lets go of the ball basically right by your face. He's definitely not a walk in the park."
Aviles doubled and scored the game's first run on a two-out single by Jose Guillen in the first.
Arizona tied it in the second on Miguel Montero's two-out double.
The Royals answered with three runs in the third, and Aviles was in the middle of the rally again. David DeJesus led off with a single and scored on Aviles' double. Aviles took third on Stephen Drew's throwing error and scored on Alex Gordon's groundout to second to make it 3-1.
Guillen singled and came all the way around to score when Arizona third baseman Mark Reynolds threw Mark Grudzielanek's grounder away, prompting boos from the typically placid Chase Field crowd.
Aviles singled and scored in the fifth, when the Royals scored four times to chase Johnson. His last pitch was to John Buck, who lined it over the right field fence for a three-run homer to make it 8-2.
"Getting to (Johnson) early gave our offense some confidence," Hillman said. "Unfortunately for him and fortunately for us, he left some pitches in very hittable spots."
Kansas City added two more runs in the sixth against Buckner on back-to-back homers by DeJesus and Aviles, his second.
Orlando Hudson had three hits for Arizona, which suffered its most lopsided loss of the season but remained 5½ games ahead of the Los Angeles Dodgers in the NL West.
Arizona is 17-23 since May 2. But the Diamondbacks' lead in the division has increased 1½ games since then.
Arizona's nearest pursuers are the Los Angeles Dodgers, who were hammed by Detroit 12-7 on Saturday, their fourth straight loss.
Melvin said he doesn't think his team has missed an opportunity.
"I try to look at it as we're pretty lucky to be where we are," Melvin said. "A lot of people say that if we'd have played well, this thing would have been out of hand at this point."