Three of Toronto's four runs came on sacrifice flies, leaving Royals manager Ned Yost frustrated that Mendoza was unable to get ground balls.
"The only thing was he couldn't get the ball down in crucial situations," Yost said. "All three runs came on sac flies on pitches that were up."
Every Blue Jays starter had at least one hit as Toronto won for the fourth time in six games. The Blue Jays are 6-1 against Kansas City this season and have won nine of the past 12 meetings dating to 2011.
Jeff Francoeur's RBI triple in the seventh provided the only run of the game for the Royals, who have lost five of six.
"You give (Villanueva) credit for doing what he did but our offense just didn't do it today," Kansas City's Alex Gordon said.
The Blue Jays added two more in the third. Edwin Encarnacion led off with a ground ball to second and was safe when Mendoza and Eric Hosmer got tangled up at first, with Mendoza catching the throw by failing to step on the base.
"I was kind of late getting over to the bag," Hosmer said. "Me and Mendy kind of called it at the same time. I think I just broke too late and probably should have let Mendy take care of that right there."
Yost saw it differently from the dugout.
"Mendoza has got to get out of the way," Yost said. "I could hear (Hosmer) screaming `I got it, I got it,' and if I can hear him, Mendy's just got to put on the brakes as best he can and let Hos take the play."
Adam Lind followed with a double, sending Encarnacion to third, before Escobar and Davis hit back-to-back sacrifice flies.
"We shortened up the infield to try to take advantage of his good two-seamer and keep the ball on the ground and see if we could cut off one or two of those runs," Yost said. "All three of those pitches he got up."
Escobar added an insurance run in the eighth with a two-out RBI single off Kelvin Herrera.
"I thought we did an excellent job of manufacturing some runs," Blue Jays manager John Farrell said.
Starting for the second time this season after making 22 relief appearances, Villanueva (3-0) allowed just four hits, three of them singles. He walked none and matched a season-high with seven strikeouts.
"Carlos did an outstanding job," Farrell said. "He was efficient. To give us the six innings was obviously a plus."
Jason Frasor replaced Villanueva in the seventh but couldn't keep the shutout bid alive. Moustakas hit a two-out single and scored when Francoeur tripled to left on a ball that skipped past Davis and rolled all the way to the wall.
Coming off a win over Minnesota in his last start, Royals right-hander Luis Mendoza pitched well but was unable to earn consecutive victories for the first time this season. Mendoza (3-5) allowed three runs and nine hits in six innings. He walked one and struck out a career-high nine.
Encarnacion extended his hitting streak to 10 games. ... Kansas City recalled RHP Nate Adcock and RHP Louis Coleman from Triple-A Omaha and designated OF Mitch Maier for assignment. ... Toronto optioned RHP Scott Richmond to Triple-A Las Vegas following the game and will promote another pitcher Thursday. ... Jamie Moyer allowed seven runs and 10 hits in six innings in his second start at Las Vegas on Tuesday, taking the loss in a 7-3 defeat to Reno. Blue Jays manager John Farrell said no decision has been made on the 49-year-old left-hander's future with Toronto. ... Lind moved up to fifth in Toronto's batting order, with Johnson dropping to the eighth spot. ... Kansas City DH Billy Butler went 0 for 3 with a walk. Butler is 0 for 23 against Toronto pitching this season.