Zinedine Zidane’s men almost fell to back-to-back league defeats for the first time since November 2015, but a second-half penalty given against Bruno Soriano helped save the day for Real Madrid in a 3-2 victory over Villarreal.
Manu Trigueros and Cedric Bakambu appeared to have snatched the goals required to knock Real off of the LaLiga summit until Gareth Bale, Cristiano Ronaldo and Alvaro Morata responded when the situation looked bleak.
La Ceramica played host to the reunification of BBC, starting together again after 116 days.
Bale made his debut league appearance for Los Blancos at this, now re-named, stadium some three-and-a-half years ago.
Back then, the Welshman scored a debut goal with his first shot on target and he found himself on the scoresheet once again.
Following on from recent defeats to both Sevilla and Valencia on the road, the visitors started in predictable fashion by giving away the first half-chance of the match, Keylor Navas forced into a full-stretch save on 11 minutes to parry a powerful Mario effort to safety.
Marcelo earned himself some space on 25 minutes with a few step-overs to beat Mario, before whipping in a teasing cross to the back post. Benzema got there first, but the shoulder of the French striker forced a fantastic save out of Sergio Asenjo.
After landing awkwardly, the home keeper tried to continue with a knee problem, but would be forced off less than 10 minutes later and replaced by Andres Fernandez.
Villarreal’s dominance was not to be affected, as Real struggled to get out of first gear and retain the ball.
First, Jonathan Dos Santos saw a shot deflected wide, before Dani Carvajal was dispossessed deep in his own half on 31 minutes.
Jaume Costa whipped a dangerous ball to the back post, but the arriving Samu Castillejo could only fire over the crossbar on the stretch from six yards out.
The scoreline remained goalless until the break, before Villarreal saw their pressure pay off.
Adrian was allowed to hold the ball up well on the left-hand side of the Real Madrid box, before hanging a great cross up towards Castillejo.
The Spanish winger nodded an unselfish header down to Trigueros, who stormed into the area to bobble a finish beyond Navas’ dive and into the far corner on 50 minutes.
Soon after, it was two. Cedric Bakambu used his pace to drive into the penalty area before powering a good left-footed finish into the bottom corner six minutes later.
Cristiano Ronaldo looked to respond just after the hour mark, as a cross from Bale was volleyed onto the inside of the far post by the Portuguese star.
Dani Carvajal whipped in a cross from the right-hand side allowing the Welshman to rise well and guide home a 64th-minute header on his first start after injury – continuing Real’s record of scoring in every league contest this campaign.
Fortune continued to smile on the away side, who were then awarded a harsh penalty on 72 minutes as Bruno Soriano saw the ball deflect off his chest and onto his arm inside the box.
Ronaldo kept his cool to slot home a penalty after plenty of waiting, restoring parity in a game that had appeared beyond Zidane’s group.
Momentum was now with the league favourites, who were very lucky to get a reprieve heading into the last 10 minutes due to their dismal first-half outing.
A text-book counter-attacking move proved to be Zidane’s latest ‘get out of jail free’ card, with Alvaro Morata bundling a close-range header over the line on 83 minutes. Bale limped off with a knock to his ankle a few minutes from time.
2 – Villarreal: Sergio Asenjo (Andres Fernandez, min. 35); Mario, Musacchio, Victor Ruiz, Jaume Costa; Dos Santos, Trigueros (Rodri, min. 75), Bruno, Samu Castillejo; Bakambu, Adrian (Cheryshev, min. 57).
3 – Real Madrid: Navas; Dani Carvajal, Pepe, Sergio Ramos, Marcelo; Modric, Casemiro (Isco, min. 58), Kroos; Bale (Lucas Vazquez, min. 88), Benzema (Morata, min. 77), Cristiano Ronaldo. Goals: 1-0, min. 50: Trigueros; 2-0, min. 56: Bakambu; 2-1, min. 64: Bale; 2-2, min. 74: Ronaldo; 3-2, min. 83: Morata.
Referee: Jesus Gil Manzano
Yellow Cards: Bruno (Min. 73) for Villarreal, Soldado (Min. 73) for Villarreal, Mario (min. 90) for Villarreal, Pepe (min. 91) for Real Madrid.
Red cards: None
Stadium: Estadio de la Ceramica