Real Madrid returned to the top of La Liga after come from two goals down to win 3-2 at Villarreal on Sunday night.
Barcelona's 2-1 win at Atletico Madrid earlier in the day had temporarily knocked Zinedine Zidane's side from the summit, and it looked as though they were going to stay in second after strikes early in the second half from Manu Trigueros and Cedric Bakambu.
But Gareth Bale's header and Cristiano Ronaldo's controversial penalty pulled Real level, before Alvaro Morata came off the bench to head the winner late on. Real now sit one point clear of Barcelona in second with a game in hand.
Zidane would have been hoping for a quick response from the defeat at Valencia in midweek, but his side only created one real chance in the first half. After 24 minutes Marcelo lifted a cross up to Karim Benzema at the far post, but his effort, which came more off his shoulder than his head, was brilliantly kept out by Sergio Asenjo.
Villarreal, who would lose their goalkeeper soon after that save through injury, created one big opportunity of their own, but Samu Castillejo could only steer his shot over the bar on the stretch on the half-hour mark after Jaume Costa's peach of a ball had found him unmarked in the box.
It wouldn't take long for Villarreal to open the scoring in the second half, though. Moments after Benzema wasted a golden chance to put Real in the lead, the home side were in front thanks to Trigueros, who fired in from 12 yards after Castillejo's headed knockdown had fallen into his path.
And shortly afterwards it was two as the brilliant Bruno Soriano found the space to slip Bakambu in on goal, and he used his strength to hold off Sergio Ramos before coolly slotting past the onrushing Keylor Navas.
Ronaldo rattled the far post with a fine volley just after the hour as Real threatened a way back, and they were back in the game after 64 minutes, as Bale, making his first start since returning from injury, nodded in from Dani Carvajal's cross from the right.
And 10 minutes later they were level in somewhat controversial circumstances when Bruno Soriano was deemed to have handled in the area after Victor Ruiz's block jumped up and appeared to hit his arm, and Ronaldo stepped up to slot home from the spot.
There was only going to be one winner from there, and after 83 minutes sub Morata was on hand to head the winner from Marcelo's cross.
Watch live coverage of Osasuna v Villarreal (Red Button from 6.30pm) and Real Madrid v Las Palmas (8.25pm) on Sky Sports 2 HD on Wednesday.