Living up to the "clasico" billing, Lionel Messi upstaged Cristiano Ronaldo on his own turf to reassert Barcelona's title credentials on Sunday.
Messi scored a hat trick, including two penalties, as Barca won 4-3 in an entertaining and at times controversial encounter at the Santiago Bernabeu Stadium, where the hosts finished with 10 men.
And having been written off too early in its title defense, Barca is now just a point behind Madrid rivals Atletico and Real at the top. The match took top billing in Europe on Sunday. Here is a look at the action from the leading leagues:
The pulsating match of the day began with Andres Iniesta powering Barcelona in front after seven minutes, followed by Karim Benzema scoring twice to put Real Madrid in control.
Although Messi slotted in an equalizer before halftime, Ronaldo re-established Madrid's lead with a 55th-minute penalty. But Messi eclipsed the man who deposed him as world player of the year scoring twice on penalties, including the equalizer after Sergio Ramos was sent off.
Messi's second straight hat trick put him second on the Spanish league's all-time scoring list with 235 goals, passing Hugo Sanchez.
Juventus maintained its charge to a third successive Serie A title as Carlos Tevez clinched a 1-0 win at Catania to restore a 14-point lead over Roma. Catania's hopes of a leveler were hampered after Gonzalo Bergessio was dismissed following a second booking in the 67th minute.
Earlier, Fiorentina snatched a late 1-0 win against Napoli to boost its chances of sneaking into the Champions League. Inter Milan is four points further back after a last-minute goal consigned it to a 2-1 loss at home to Atalanta. Parma is level, but with a game in hand, after it drew 1-1 with Genoa.
The weekend produced 42 goals in the Premier League, including 10 in Sunday's two games.
With Tottenham trailing 2-0 to Southampton, Christian Eriksen scored twice before setting up Gylfi Sigurdsson's stoppage-time goal to complete a 3-2 win. The victory kept Tottenham within reach of the Champions League places, six points behind fourth-placed Arsenal.
Stoke climbed above Aston Villa into 10th place after coming from behind to win 4-1 at Villa Park. Peter Odemwingie, Peter Crouch, Steven Nzonzi and Geoff Cameron scored the goals that gave Stoke a first away win in the league since August.
Hoffenheim consigned Bayer Leverkusen to an eighth loss in nine games in all competitions by winning 3-2 in the Bundesliga. Leverkusen was once second but now sits fourth, just two points ahead of Borussia Moenchengladbach in the last Champions League qualification place.
Eintracht Frankfurt handed Nuremberg its fourth straight loss, winning 5-2 to ease its relegation fears while leaving the hosts in the drop zone.
Monaco lost ground on league leader Paris Saint-Germain by drawing 1-1 with Lille to fall 10 points behind. Lille stayed in third place, nine points behind Monaco.
Fourth-place Saint-Etienne beat lowly Sochaux 3-1 and Lyon kept pace with Saint-Etienne in the race for a European spot by defeating Guingamp 1-0.