Värdarna föll efter precis innan pausen när Sergio Ramos använde sin hand för att blockera ett skott i lådan och Bruno Soriano hackade in från platsen.
Ramos gjorde gottgörelse strax efter omstarten, på väg in från ett hörn.
Zinedine Zidanes sida satte besökarna under gemensam press under hela den andra halvan, men Villarreal höll fast vid att förneka Real det direkta rekordet.
Istället kommer de att behöva dela rekordet av 16 raka segrar satt av Pep Guardiolas Barcelona sida under säsongen 2010-11.
Men en punkt ser till att de förblir toppen av La Liga, fyra poäng före Barcelona, som bara kunde dra 1-1 med Atlantico Madrid.
Inte många spelare växla mellan roller hjälte och skurk lika lätt som Sergio Ramos och den volatila försvararen återigen spelade båda delarna skickligt någon sida av intervallet.
För andra matchen i rad försökte han dölja en handboll genom att låtsas att bollen hade träffat hans ansikte. Men domaren hade inget av det och Bruno överlistade Riktiga väktaren Kiko Casilla med en Panenka-stil straff för att ge Villarreal ledningen. Ramos gjorde samma sak mot Espanyol i helgen.
Det är den tredje straffet som Ramos har medgett i sju matcher över alla tävlingar den här säsongen, men spanjoren gjorde gottgörelse, förlora sin man i ett hörn och producera en kraftfull rubrik som gav Sergio Asenjo ingen chans.
Det var den enda av 17 hörn som värdarna konverterade, med Ramos också oförmögen att övertyga domaren att tilldela Real ett sent straff som han föll under utmaningen av Roberto Soriano.
Detta var det första spelet där Real's "BBC" frontlinjen av Gareth Bale, Karim Benzema och Cristiano Ronaldo har alla börjat tillsammans - ett resultat av både skada och Zidanes åtagande att rotera sin trupp.
Ändå fanns det bara flimmers av trion bästa fotboll, särskilt i den första halvan när en beslutsam Villarreal stoppade Reals flytande passerar spel och tvingade dem att ta till skott på avstånd.
Värdarna dominerade för långa trollformler av den andra halvan men sällan tvingade Asenjo i en räddning, med Benzema skyldig till att gå över två chanser när väl placerad innan både han och Bale ersattes innan slutet.
En kväll av frustration för Reals talisman Ronaldo var klar när han äntligen hittade målet, bara för att se sin insats parated bort av Asenjo innan slå en sen frispark direkt på Villarreal innehavaren.
Matchen slutar, Real Madrid 1, Villarreal 1.
Daniel Carvajal (Real Madrid) visas det gula kortet.
Andra halvlek, Real Madrid 1, Villarreal 1.
Försöket räddades. Cristiano Ronaldo (Real Madrid) höger fotade skott från utsidan boxen sparas i mitten av målet.
Cristiano Ronaldo (Real Madrid) vinner en frispark i anfallshalvan.
Foul av Alfred N'Diaye (Villarreal).
Foul av Raphael Varane (Real Madrid).
Alexandre Pato (Villarreal) vinner en frispark i defensiva halvan.
Sergio Ramos (Real Madrid) vinner en frispark i defensiva halvan.
Foul av Alfred N'Diaye (Villarreal).
Foul av Lucas Vázquez (Real Madrid).
Manu Trigueros (Villarreal) vinner en frispark i anfallshalvan.
Försöket räddades. Cristiano Ronaldo (Real Madrid) höger fotade skott från mitten av lådan sparas i det övre högra hörnet. Hjälpt av Daniel Carvajal.
Substitution, Villarreal. Alfred N'Diaye ersätter Jonathan dos Santos.
Försöket räddades. Toni Kroos (Real Madrid) vänster fotade skott från utsidan boxen sparas i mitten av målet. Hjälpt av Lucas Vázquez.
Hörnet, Real Madrid. Förföljd av Víctor Ruiz.
Försök blockerat. Lucas Vázquez (Real Madrid) höger fotade skott från mitten av lådan är blockerad. Hjälpt av Cristiano Ronaldo.
Hörnet, Real Madrid. Förföljd av Sergio Asenjo.
Försöket räddades. Álvaro Morata (Real Madrid) huvud från mitten av lådan sparas i toppen av målet. Hjälpt av Lucas Vázquez med ett kors.
Foul av Cristiano Ronaldo (Real Madrid).
Mateo Musacchio (Villarreal) vinner en frispark i defensiva halvan.
Foul av Lucas Vázquez (Real Madrid).
Alexandre Pato (Villarreal) vinner en frispark på vänsterflygeln.
Försöket räddades. Toni Kroos (Real Madrid) höger fotade skott från utsidan boxen sparas i mitten av målet. Hjälpt av Daniel Carvajal.
Mateo Kovacic (Real Madrid) vinner en frispark i den defensiva halvan.
Foul av Jonathan dos Santos (Villarreal).
Hörnet, Villarreal. Förföljd av Toni Kroos.
Försök blockerat. Mario (Villarreal) höger fotade skott från höger sida av lådan är blockerad. Hjälpt av Samu Castillejo.
Ersättning, Real Madrid. Álvaro Morata ersätter Karim Benzema.
Försök missade. Karim Benzema (Real Madrid) huvudet från mitten av lådan är högt och brett till vänster. Hjälpt av Toni Kroos med ett kors.
Hörnet, Real Madrid. Förföljd av Mateo Musacchio.
Försök blockerat. Cristiano Ronaldo (Real Madrid) höger fotade skott utanför lådan är blockerad.
Toni Kroos (Real Madrid) visas det gula kortet för en dålig foul.
Foul av Toni Kroos (Real Madrid).
Samu Castillejo (Villarreal) vinner en frispark i defensiva halvan.
Substitution, Villarreal. Alexandre Pato ersätter Nicola Sansone.
Ersättning, Real Madrid. Lucas Vázquez ersätter Gareth Bale.
Cristiano Ronaldo (Real Madrid) visas det gula kortet för en dålig foul.
Foul av Cristiano Ronaldo (Real Madrid).
Bruno (Villarreal) vinner en frispark i anfallshalvan.
Real Madrid missade en rekordstor 17:e raka La Liga-seger när de drog med Villarreal.