Karim Benzema opened the scoring with a sumptuous strike in the 24th minute. Casemiro picked off Sofian Chakla’s pass before Luka Modric laid the ball into the path of Benzema who strike went through the legs of Sergio Asenjo and into the back of the net.
The home side came close to scoring another as Dani Carjaval, chasing a brilliant defense-splitting pass from Modric, made a dashing run forward. Carvajal shot after dribbling past a few defenders, but it was blocked by the opponent goalkeeper.
A penalty then finally helped them double their lead in the second half. Sergio Ramos was tackled down inside the box by Chakla and the referee immediately pointed to the spot.
The initial cheeky attempt, as Ramos passed off the spot to Benzema, was ruled out. However, Benzema made no mistake on the re-take as he drilled the ball home despite Asenjo going the right way.
Villarreal managed to pull one back through Thibaut Courtois, although it proved not to have any effect on the title race.
Marco Asensio thought he had added a third goal in the dying minutes, only to see it ruled out by the VAR.
Real Madrid have now wrapped up the 2019/20 La Liga title, their 34th, with a game to spare.