Moustakas was hitless in 10 at-bats and in a 3-for-20 slide. His home run to right in the fifth snapped a 5-5 tie, while the three-hit game was his first since May 8.
"There's a great pitcher on the mound and he doesn't make too many mistakes," Moustakas said. "I got a pitch I could handle and didn't miss it."
Verlander (10-7) had not lost to the Royals since Sept. 9, 2009, but gave up six runs, five earned, on eight hits and four walks in 5 2-3 innings.
"It was not good at all," Verlander said. "I walked guys and they scored runs. I wasn't able to execute. I was just all over. I wasn't in sync. I've got to find it. I had three or four games before the All-Star break where I thought I had it back, but I didn't feel in sync tonight. Hopefully I'll get it back."
It was the seventh time in 21 starts that Verlander failed to make it into the sixth inning.
"I would say over the course of the season up to this point, and there's still a lot of season left, his performance hasn't been quite as consistent as in the past," Tigers manager Jim Leyland said. "It's just not what you expect of him, which is a little unfair because of what you expect of him."
Perez drove in a run in the first with a sacrifice fly and stroked a two-run double in the third.
Jeremy Guthrie (9-7) picked up the victory, surrendering five runs on 10 hits and two walks in six innings.
"The bullpen won the game despite me trying to give it away," Guthrie said.
Aaron Crow, the fourth of five Kansas City pitchers, pitched out of danger in the eighth inning. Alex Avila led off with a single, his third hit, and pinch hitter Don Kelly walked. After Austin Jackson bunted them both over, Crow retired Torii Hunter and Miguel Cabrera on ground balls to third base to strand them.
"I'm trying to put everything behind me and they both hit balls right at Moose (Moustakas)," Crow said. "I got the ball down on Cabrera and he hit it on the ground. You don't want to walk him to load the bases with Prince (Fielder) on-deck."
Hunter and Cabrera are a combined 0 for 14 off Crow.
"We were not going to give in to Cabrera," Royals manager Ned Yost said. "We'd either walk him or make perfect pitches. Crow made the perfect pitches."
"Soon as he hit it, I was praying it would stay in the park," Yost said. "I thought it had a chance to go out. I'm just glad it didn't."
Martinez stood at the plate for a couple of seconds to admire his work before taking off and just making it to second.
"I thought I had that ball and then I saw it go down," Martinez said.
Fielder and Martinez stroked RBI-singles in the first as the Tigers jumped out to a 2-0 lead.
Avila drove in two runs with a two-out fifth inning single to tie the score at 5-all.
Getz, who was recalled Friday from Triple-A Omaha, suffered a mild medial strain of his left knee in the fifth inning while trying to field Fielder's smash grounder. He was replaced by Elliot Johnson. Yost said Getz is "not a DL (disabled list) situation, more like a day-to-day situation."
- Royals RHP Felipe Paulino, who threw a 45-pitch bullpen session, is scheduled to throw a two-inning simulated game Monday. Paulino, who remains on the disabled list after having Tommy John surgery last year, said the elbow is fine, but he has been setback by a sore shoulder.
- RHP James Shields, who starts Sunday, has only one home victory in nine starts this season. He is 1-3 with a 3.75 ERA. The Tigers will counter with RHP Doug Fister (7-5, 4.02).
- The Tigers dropped to 9-13 in one-run games.