Jason Kubel homered, doubled and drove in five runs for the AL Central champion Twins. The Royals led 10-8 after four innings, and it stayed that way.
Dyson, a September call-up who was a 20th-round draft pick in 2006, snapped an 0-for-15 skid with a two-run homer in a six-run second off Kevin Slowey.
Dyson also tied a team record for putouts by an outfielder. Amos Otis (1979) and Carlos Beltran (1998) also had 10 each.
Josh Fields hit a two-run homer and rookie Lucas May drove in three runs for Kansas City.
Slowey was pulled after 1 2-3 innings, matching his shortest outing of the season. He allowed six runs on six hits, failing to hold a 3-0 lead. Slowey had been 6-1 in his previous 13 starts.
Royals starter Kyle Davies took a 7-3 lead into the fourth, but failed to make it out of the inning. He was pulled after 3 2-3 innings, giving up seven runs on eight hits and three walks.
Phil Humber (2-1) replaced Davies and gave up the home run to Kubel on his third pitch, but picked up the victory.
Joakim Soria worked a scoreless ninth to log his 42nd save in 44 opportunities. He has not allowed a run in 22 2-3 innings, breaking Rusty Meacham's record of consecutive scoreless innings by a Royals' relief pitcher. Meacham set the record with 22 1-3 scoreless innings in 1994.
Jeff Manship (2-1), the second of seven Twins pitchers, took the loss, giving up three runs on four hits in 1 1-3 innings.
Kubel hit a three-run homer off Humber in a five-run fourth for an 8-7 lead.
Notes: Twins C Joe Mauer took early batting practice, but will likely not play in this series because of a troublesome left knee that required cortisone shot Wednesday. ... Twins SS J.J. Hardy returned to Minnesota on Monday to have his sore left examined. ... Royals IF Wilson Betemit missed his second straight game with a bruised shin after being hit by a pitch Saturday.