Villarreal held off last year’s La Liga champions to a 1-1 stalemate, snatching away their chances of becoming the leaders once again.
Mariano’s header after just two minutes gave Real Madrid the ideal start.
However, the visitors struggled to put the game out of reach and visibly tired as the game wore on.
Instead, Villarreal got stronger and were awarded a penalty late on when Samuel Chukwueze was brought down and Gerard Moreno slotted in the spot-kick.
Moreno had a good chance to secure all three points for Villarreal and send Unai Emery’s side top of the table but he hesitated when well-placed to shoot and Raphael Varane got the block in.
In end it was a good point for Real Madrid, who were missing a number of first-team players through injury, and they stay fourth in the table behind Villarreal in second.