"Don't ask me why we had success tonight," Royals manager Ned Yost said drily.
Dyson, the Royals' No. 9 hitter, went 3 for 3 and stole two bases. Salvador Perez hit a solo home run, and Lorenzo Cain and Alcides Escobar -- two of the players acquired by the Royals in the trade that sent Greinke to Milwaukee in December 2010 -- drove in a run apiece.
It was an offensive outburst considering the Royals had lost three of their last four games by 2-1 scores, squandering solid pitching performances by their starting rotation.
"There was never any panic," said Guthrie, who gave up two runs and seven hits in 7 2/3 innings to win his third straight start. "We lost a couple of close games. We recognize a couple things go our way we would have won a couple of them."
Hanley Ramirez drove in the other two runs for the Dodgers, who are visiting Kansas City for the first time since they were swept in a three-game set in 2005.
In his third start against his former team, Greinke (9-4) was battered for a season-high five runs and 11 hits in 5 2/3 innings. He had allowed two runs over 15 1/3 innings in his previous two starts against the Royals, one with the Brewers and the other with the Los Angeles Angels.
"I thought he was OK," Dodgers manager Don Mattingly said. "There were a few balls where you could see where he was trying to go one place and it didn't end up there. I know a couple of those were to Dyson. I think some of the balls were trying to get to a different part of the plate and didn't get there."
The Royals pounded Greinke almost from the start, Perez belting the first pitch of the second inning over the wall in left field for a 1-0 lead. Then with two outs, Escobar singled and went to second on a wild pitch before heading home when Dyson dumped a single into left field.
Dyson made it 3-0 in the fifth when he scored on Cain's single to right.
The Royals finally knocked Greinke from the game in the fifth, this time after Perez started the inning with a double. Greinke fought back to get two outs, but Escobar hit a triple into the right-field corner and Dyson tacked on another RBI single to make it 5-0.
That hit ended Greinke's night. As he departed the mound, fans showered him with a chorus of boos, clearly recalling how the right-hander once demanded to be traded from their team.
"I was pretty rude on the way out. They have every right to be mad at me," Greinke said. "It's been awhile. It's been four years, so it's been awhile. They've moved on by now and so have I. At least team-wise. The fans might be different."
Meanwhile, those same fans were waiting to give Guthrie a standing ovation.
The right-hander faced the minimum number of hitters through four innings, needing just four pitches in the second and five in the fourth. Gonzalez and Matt Kemp finally hit consecutive singles to start the fifth, but Guthrie calmly wiggled out of that jam.
It wasn't until Miguel Rojas and Justin Turner hit singles and Ramirez one-hopped a double over the outfield wall to make it 5-2 in the eighth that Guthrie finally left the game.
Wade Davis finished the inning, and Holland cleaned up the ninth to preserve the win.
"It's a funny game. You go against a guy like Zack Greinke who's had so much success this year," Yost said. "We strung some hits together along with some outstanding pitching we've had the last five or six starts, it's a big win for us tonight."
LHP Clayton Kershaw was the NL player of the week after his no-hitter against Colorado. He starts for Los Angeles on Tuesday against Royals LHP Danny Duffy. ... Kemp extended his hitting streak to 11 games. ... Guthrie struck out five without a walk. ... The Dodgers had won seven straight interleague games.
Copyright by STATS LLC and The Associated Press
KANSAS CITY, MO - JUNE 23: Jeremy Guthrie #11 of the Kansas City Royals pitches in the first inning against the...
21,615 (57% full) - % is based on regular season capacity
79 degrees, cloudy
Home Plate - Mike Estabrook, First Base - Hunter Wendelstedt, Second Base - Brian Knight, Third Base - Mike DiMuro
Zack Greinke allowed a season-high five earned runs Monday against the Royals.
It was the most earned runs he's allowed in any interleague start since June 28, 2011, when he was pitching for the Brewers.