The home side had much the better chances, with United goalkeeper David de Gea bailing his team out with several fine saves, the best of which denied Manu Trigueros a goal.
Out of nowhere, however, a poor pass from Villarreal keeper Geronimo Rulli that was miscontrolled by Etienne Capoue was then seized upon by Ronaldo, who lofted the ball over the stranded Rulli to give United the lead in the 78th minute.
Ronaldo's goals have been crucial for United in Europe this season.
He scored late winners against Atalanta and Villarreal in the reverse fixture, while also netting a leveller in stoppage time at Atalanta in the last match.
The Portuguese forward got more than a helping hand for this important strike, but his finish was clinical.
He also played a role in the second and clinching goal, laying the ball into substitute Bruno Fernandes, who fed Sancho to put the result beyond doubt.