Match ends, Real Madrid 1, Villarreal 1.
- Real Madrid's lead at the top just two points
- Real travel to Barca on 22 March
- Villarreal keep alive Champions League hopes
Real Madrid's hopes of securing a first La Liga title since 2012 suffered a setback as they were held 1-1 by Villarreal at the Bernabeu Stadium.
Carlo Ancelotti's leaders looked to be heading four points clear at the top of the table after Cristiano Ronaldo's ninth league penalty of the season.
It was awarded after Ronaldo was bundled over by Eric Bailly.
But Villarreal hit back through Gerard Moreno, the 22-year-old beating Iker Casillas with a low shot from 18-yards.
Real had started the game with a slender one-point lead at the summit after Barcelona's workmanlike 3-1 win at Granada on Saturday.
Yet while they extended their lead to two points, Ancelotti will consider this a wasted opportunity to keep some distance from Barca, who they visit on 22 March.
Real had 25 shots yet were fortunate in the end not to have suffered a defeat.
Villarreal's leading scorer Luciano Vietto found himself clean through on goal in the 77th minute before losing his footing just as he prepared to shoot.
It is first time Real have dropped points at home in the league since they were beaten by neighbours and defending champions Atletico Madrid 2-1 on 13 September.
But Real have only themselves to blame after spurning a string of chances.
Ronaldo's penalty took his tally to 30 goals in the league this season, yet the Portuguese should have been celebrating his fifth hat-trick of the term.
He was frustrated by Sergio Asenjo, the Villarreal keeper producing a string of fine saves including one flying stop to keep out Ronaldo's 71st-minute header.
In a thrilling end to the game, Real substitute Jese wasted a great chance before Vietto was denied a dramatic Villarreal winner when Casillas kept out his glancing header.
The visitors survived strong claims for a late penalty following Bailly's challenge on substitute Javier Hernandez.
But Villarreal, who move one point behind fifth-placed Sevilla, were full value for their point.
- 15CarvajalBooked at 76mins
- 3PepeBooked at 89mins
- 16BorgesSubstituted forRodríguez Ruizat 72'minutes
- 23IscoSubstituted forIllarramendiat 78'minutes
- 9BenzemaSubstituted forHernándezat 81'minutes
- 7Cristiano Ronaldo
- 5da Silva Coentrão
- 20Rodríguez Ruiz
- 1AsenjoBooked at 79mins
- 2Perez Martinez
- 24BaillyBooked at 51mins
- 16Dorado Ramírez
- 18Costa JordáBooked at 70mins
- 4PinaSubstituted forTrigueros Muñozat 61'minutesBooked at 87mins
- 26Marcos GonzálezSubstituted forJ dos Santosat 68'minutes
- 19Gómez BardonadoBooked at 37mins
- 23Moreno Balagueró
- 9G dos SantosSubstituted forViettoat 62'minutes
- 6J dos Santos
- 14Trigueros Muñoz
- 25Sánchez Martínez
- José Luis González González
- Shots on Target
Second Half ends, Real Madrid 1, Villarreal 1.
Corner, Real Madrid. Conceded by Jaume Costa.
Attempt missed. Cristiano Ronaldo (Real Madrid) header from the right side of the six yard box is just a bit too high. Assisted by Marcelo with a cross.
Corner, Real Madrid. Conceded by Sergio Asenjo.
Corner, Real Madrid. Conceded by Eric Bailly.
Pepe (Real Madrid) is shown the yellow card.
Foul by Gareth Bale (Real Madrid).
Jaume Costa (Villarreal) wins a free kick in the defensive half.
Corner, Real Madrid. Conceded by Manu Trigueros.
Manu Trigueros (Villarreal) is shown the yellow card for a bad foul.
Toni Kroos (Real Madrid) wins a free kick in the attacking half.
Foul by Manu Trigueros (Villarreal).
Attempt saved. Luciano Vietto (Villarreal) header from the centre of the box is saved in the bottom right corner. Assisted by Gerard Moreno with a cross.
Attempt missed. Jesé (Real Madrid) right footed shot from the right side of the box is close, but misses to the right.
Marcelo (Real Madrid) wins a free kick in the defensive half.
Foul by Joel Campbell (Villarreal).
Substitution, Real Madrid. Javier Hernández replaces Karim Benzema.
Attempt missed. Cristiano Ronaldo (Real Madrid) left footed shot from the right side of the box misses to the right. Assisted by Gareth Bale.
Pepe (Real Madrid) wins a free kick in the defensive half.