Lionel Messi netted a superb double as Barcelona came from a goal down to secure a 4-1 win at rain-lashed Sevilla that lifted the champions back to the top of La Liga.
Barca's victory at the Sanchez Pizjuan in Seville means the top three all have 57 points with 15 matches left, with Barca leading Real on goal difference and Atletico in third.
Barca started shakily on a foul night in Andalusia and looked in trouble when Alberto Moreno's deflected shot put Sevilla ahead in the 15th minute.
The home side had two more clear chances before Alexis Sanchez levelled with a header in the 34th minute.
Messi fired Barca ahead with a typically brilliant effort 10 minutes later.
Sevilla had a couple of chances early in the second half before Messi's second in the 56th. Andres Iniesta skipped through the centre and fed the Argentina forward, who took one touch before sidefooting in off a post.
Cesc Fabregas came off the bench and scored a delightful dinked effort to finish off a move he started two minutes from time.
Gareth Bale marked his Real Madrid return after injury with the opening goal in the 4-2 victory and the Wales winger then set up Karim Benzema to give the home side a commanding lead, only to see Mario Gaspar reply for Villarreal before the break.
Jese restored Real's two-goal cushion and, after Giovani Dos Santos scored a fine free kick, Benzema made it 4-2.
In Italy, Furious Juventus coach Antonio Conte launched another tirade at his players, saying they had taken a "shower of humility" after squandering a two-goal lead in a 2-2 draw at Verona.
Meanwhile, in Germany, Bayern Munich extended their unbeaten streak to 45 games with a 2-0 win in the Bundesliga's Bavarian derby at Nurnberg, while in France league leaders Paris Saint-Germain were held to a 1-1 draw with second-placed Monaco in the principality to keep their five-point advantage at the top of the table.
Javier Pastore opened the scoring after eight minutes for PSG, before a Thiago Silva own-goal with 16 minutes to play levelled matters.