Match ends, Real Madrid 3, Villarreal 0.
Real Madrid kept pace with Barcelona and Atletico Madrid at the top of La Liga by comfortably beating fourth-placed Villarreal at the Bernabeu.
Striker Karim Benzema instinctively headed Villarreal keeper Sergio Asenjo's parry back into an empty net to give Real a 1-0 lead at the break.
Lucas Vazquez drilled in a low second, before Luka Modric slid in to wrap up Real's eighth straight La Liga win.
Third-placed Real are a point behind the top two with four games left.
But there was a late concern for coach Zinedine Zidane when Cristiano Ronaldo limped off in injury-time.
Relive the action from Wednesday's La Liga games
|The run-in for the contenders|
|Barcelona||Atletico Madrid||Real Madrid|
|(h) Sporting Gijon||(h) Malaga||(a) Rayo Vallecano|
|(a) Real Betis||(h) Rayo Vallecano||(a) Real Sociedad|
|(h) Espanyol||(a) Levante||(h) Valencia|
|(a) Granada||(h) Celta Vigo||(a) Deportivo La Coruna|
Real knew they needed a victory to maintain their push for a first La Liga title since 2012 after Barca ended their three-match winless run by thumping Deportivo and Atletico edged past fifth-placed Athletic Bilbao.
And they responded with an efficient display against a toothless Villarreal side.
Real had dominated without stretching away keeper Asenjo, finally making their superiority count through Benzema's 27th goal of the season.
Vazquez, given a rare start as Gareth Bale missed out with a slight back injury, took advantage of his opportunity by converting Benzema's neat lay-off after the break.
Real never looked like letting Villarreal back into the game, sealing a routine victory through Croatia midfielder Modric.
- 23DaniloBooked at 45mins
- 19ModricSubstituted forRodríguezat 79'minutes
- 14CasemiroBooked at 85mins
- 8KroosSubstituted forIscoat 73'minutes
- 18VázquezSubstituted forRodríguez Ruizat 84'minutes
- 7Cristiano Ronaldo
- 20Rodríguez Ruiz
- 2M Gaspar
- 8J dos SantosSubstituted forGarcía Sánchezat 62'minutes
- 14Trigueros MuñozBooked at 44minsSubstituted forRodriat 73'minutes
- 18D Suárez
- 20López ÁlvarezSubstituted forCarrilho Baptistaoat 64'minutes
- 7García Sánchez
- 10Carrilho Baptistao
- 27Marín Gómez
- 44Iñíguez de Heredia
- Carlos Clos Gómez
- Shots on Target
Second Half ends, Real Madrid 3, Villarreal 0.
Foul by Isco (Real Madrid).
Leo Baptistao (Villarreal) wins a free kick in the attacking half.
Attempt blocked. Samuel (Villarreal) right footed shot from the centre of the box is blocked.
Cristiano Ronaldo went off injured after Real Madrid had used all subs.
Attempt missed. Karim Benzema (Real Madrid) header from the centre of the box misses to the right. Assisted by Marcelo with a cross.
Corner, Real Madrid. Conceded by Antonio Rukavina.
Attempt saved. Denis Suárez (Villarreal) right footed shot from outside the box is saved in the centre of the goal.
Casemiro (Real Madrid) is shown the yellow card for a bad foul.
Foul by Casemiro (Real Madrid).
Rodrigo (Villarreal) wins a free kick in the attacking half.
Substitution, Real Madrid. Jesé replaces Lucas Vázquez.
Marcelo (Real Madrid) wins a free kick on the left wing.
Foul by Samuel (Villarreal).
Casemiro (Real Madrid) wins a free kick in the defensive half.
Foul by Leo Baptistao (Villarreal).
Substitution, Real Madrid. James Rodríguez replaces Luka Modric.
Goal! Real Madrid 3, Villarreal 0. Luka Modric (Real Madrid) left footed shot from the centre of the box to the centre of the goal. Assisted by Danilo with a cross.
Offside, Real Madrid. Isco tries a through ball, but Sergio Ramos is caught offside.