Villanueva improved to 4-0 for the Blue Jays, allowing three hits and five walks, while striking out eight over six innings.
His counterpart, Derek Lowe, also only allowed three hits over six innings, but a three-run third inning did him in.
The Blue Jays scored their three runs on a single by J.P. Arencibia, a single by Colby Rasmus and a walk from Adam Lind.
Michael Brantley had two of the Indians' five hits on Sunday.
Cleveland now drops to 45-43 on the season. It will head down to Tampa Bay on Monday to begin a four-game series with the Rays.