Real Madrid dropped two points against a courageous Villarreal and saw Barcelona shorten Los Blancos lead in La Liga down to two points.
Cristiano Ronaldo put the hosts ahead with a penalty kick, but Marcelino Garcia Toral men savaged a point thanks to Gerard Moreno.
Despite resting most of the regular starters, Villarreal showed great confidence at the Santiago Bernabeu, threatening Iker Casillas from the start.
The visitors could have taken the lead before the 15-minute mark as Gerard Moreno caught the ball inside the box and brought an excellent save from Casillas. Moi Gomez caught the rebound but with the keeper scrambling Dani Carvajal came to the rescue clearing the shot off the line.
Los Blancos slowly started to take control of the game and Gareth Bale was close to scoring as he met a Toni Kroos cross and headed it a few centimetres wide off the post.
Carlo Ancelotti men were getting closer and another delivery from Kroos was met by Raphael Varane whose header narrowly missed at the far post.
The home side came into the second half determined to take the lead and Ronaldo had a great opportunity to score ahead after finding space inside the box, but his effort was saved by Sergio Asenjo.
Yet, a couple of minutes later Eric Bailly was booked for pulling the Portuguese to the ground inside the box and the Ballon d’Or winner stroke the penalty into the top corner to make it 1-0.
Asenjo made a superb save to deny Ronaldo in the next play, and Los Blancos started to struggle after that chance. Luciano Vietto and Mario Trigueros came in from the bench and rapidly changed the game.
Gerard Moreno made it 1-1 with a powerful shot from the edge of the box following a great play from Vietto.
Karim Benzema and Ronaldo were close to earning three points for Los Merengues, but Asenjo completed a brilliant performance denying both efforts.
Jese also missed a major chance as a long ball slipped through Asenjo’s hand, but the Canarian’s effort bounced wide at the near post.
Villarreal could have stunned Los Blancos in the last minutes as Moreno delivered a super cross towards Vietto, who flicked a header towards the bottom corner, but Casillas was down to make the save.