David DeJesus pounded a three-run homer, and Alex Gordon slammed a two-run shot, both off Angels starter Jered Weaver.
DeJesus put a drive into the right-field bullpen in the second inning to give the Royals a 5-1 lead.
"It was 2-2 or 3-2 or something like that, and I just had a feeling he was going to come with a little cutter inside, so I just stayed back on it, got the bat to the ball and it went out," DeJesus said. "Just one of those things."
There were other things. Struggling Jose Guillen had his first three-hit game this season, with two doubles and a single. Mark Grudzielanek also had three hits, then he was lifted to give him a rest.
Guillen also left the game after five innings, but he had a sore neck.
"He was cramping up a little bit in his neck," Hillman said. "I would have kept those at-bats going, but I wanted to get some ice on it and get it settled down for tomorrow."
Besides, by then the Royals were ahead, 9-1. A nice change, considering they went into the game as the lowest-scoring club in the Major Leagues, averaging 3.4 runs a game. In this one, they matched their season high of nine.
Greinke worked seven innings to become the Royals' first four-game winner. The three runs he allowed -- two on Mike Napoli's 422-foot blast -- actually inflated his skinny ERA from 1.47 to 1.80.
The big lead was a luxury for Greinke, who had pitched well in his previous three starts but didn't get a victory.
"It's great. You could attack guys," he said. "They've got a good lineup, but you give up a two-run home run and it's nothing. ... If it wasn't for that, I'd have probably gone five innings instead of seven."
Hillman thought home-plate umpire Tim McClelland's tight strike zone was a benefit for the Royals, as they sharpened their offensive focus.
"It was a fair zone, but that helped us get locked in a little bit, quite frankly," Hillman said. "We did what we needed to do. We saw more pitches, and that helped us unload on better pitches."
The tall, veteran McClelland's tendency to delay his calls had an effect on Greinke -- especially on his final pitch of the night, strike three to Sean Rodriguez.
"For some reason, he's the one umpire that scares me. I have nightmares about him," Greinke said. "So that pitch was right down the middle, and when he didn't call it right away, I was 'Oh, my goodness.'"
Then Greinke saw catcher John Buck walk toward the dugout and begin laughing. His night ended on a high note.
It was a fun night for the Royals because they took to heart what Hillman and hitting coach Mike Barnett talked to them about changing their approach before the game.
"Everybody was trying so hard just to get it done that maybe we were swinging at some pitches that we don't normally swing at," Buck said.
"So we really concentrated on individual at-bats, so it'd help more collectively to create more baserunners and create more opportunities for everybody. And, obviously, everybody concentrated on that tonight, and you see the results of it."
Another plus to salvaging the series finale was getting the Angels' Garret Anderson out of the town. He slugged a ninth-inning homer against reliever Yasuhiko Yabuta and finished the series 6-for-12 with three home runs and eight RBIs.
This time, though, the Royals' revived attack made him just a footnote to a runaway win.