Cristiano Ronaldo's early second-half penalty looked to have Madrid on course for a fourth consecutive win, but Gerard Moreno's thunderous equaliser 26 minutes from time earned the visitors a deserved point.
"The two halves were completely different," said Real boss Carlo Ancelotti. "In the first-half the tempo was slow and we had to look for a lot of crosses because we didn't move the ball quickly. In the second the tempo was different. We had a lot of chances, but we weren't efficient."
Villarreal were without a host of first team regulars as coach Marcelino continues to prioritise progress in the Copa del Rey and Europa League.
However, the visitors started the brighter and should have been in front on 12 minutes when Iker Casillas made a fine save from Moreno and then Dani Carvajal headed Moi Gomez's follow-up effort off the line.
Madrid came back into the game in the second half and Ronaldo saw his first effort on target of the evening well saved by Sergio Asenjo three minutes after the break.
There was nothing the goalkeeper could do to prevent the Portuguese opening the scoring from the spot after he had been pulled down inside the area by Eric Bailly.
However, Ronaldo and Gareth Bale then passed up gilt-edged chances and the misses were to prove costly when Villarreal levelled thanks to a wonderful low finish by Moreno.
Meanwhile, champions Atletico Madrid failed to gain any ground on the leaders as they battled to a 0-0 draw at Sevilla.
Fourth-placed Valencia are now just a point adrift of Atletico after they were comfortable 2-0 winners over David Moyes's Real Sociedad thanks to a double from Pablo Piatti.
Like Sports on Facebook, follow @ETribuneSports on Twitter to stay informed and join in the conversation.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ