Perez drove a two-out pitch over the left-field wall to put the Royals ahead 4-2.
Verlander (12-11) is 0-3 with three no-decisions in six starts since an Aug. 6 victory at Cleveland.
The Tigers have dropped his past six starts and are 13-17 in his 30 starts this season.
The Royals have won all five games Verlander has started against them this season. Verlander allowed four runs and eight hits in seven innings, while walking one and striking out seven.
Wade Davis (7-10), the second of five Kansas City pitchers, picked up the victory on his 28th birthday.
Greg Holland worked a perfect ninth for his 39th save in 42 chances.