Real Madrid ended Atletico Madrid's 26-game unbeaten run with a 2-0 win at the Alfredo Di Stefano Stadium to move within three points of the La Liga leaders.
Los Blancos carried on from their midweek Champions League success to produce an accomplished display and inflict a first league loss on Atletico since the start of February.
Casemiro headed Real in front after 15 minutes and Dani Carvajal's long-range effort bounced off a post and in off Atletico goalkeeper Jan Oblak in the second half to seal victory.
Real, who made sure of a place in the last 16 of the Champions League with victory over Borussia Monchengladbach on Wednesday night, started brightly as Karim Benzema's drive was pushed onto a post by Oblak.
The home side took the lead after 15 minutes when midfielder Casemiro powered in a header from Toni Kroos' corner.
French midfielder Lemar went close to an equaliser in the 55th minute when he fired into the side-netting after Marcos Llorente had put in a low cross to the back post.
Real Madrid doubled their lead in the 63rd minute; Kroos' floated free-kick was headed back out towards Carvajal. The defender collected the ball on his chest before firing a long-range effort against a post and in off Oblak as he dived for an own goal.
Elsewhere in La Liga, Valencia and Athletic Bilbao drew 2-2, Sevilla won 1-0 at Getafe and Huesca beat Alaves 1-0.
Bundesliga: Stuttgart crush Dortmund
Promoted Stuttgart scored three times in 10 minutes to crush hosts Borussia Dortmund 5-1 in the Bundesliga on Saturday to maintain their unbeaten run on the road this season.
In their best performance of the season under American coach Pellegrino Matarazzo, Stuttgart ran riot over the Dortmund defence.
For Dortmund, it was the worst defeat under coach Lucien Favre, who is in his third season at the club.
Stuttgart's strong start earned them a 26th-minute penalty when Emre Can felled Mateo Klimowicz and Silas Wamangituka sent keeper Roman Buerki the wrong way with his spot-kick.
With the visitors pushing for a second goal, the hosts, without injured top striker Erling Haaland, struck against the run of play when Giovanni Reyna latched on to a pinpoint Raphael Guerreiro cross to chip the ball over the Stuttgart keeper.
But a mistake by Guerreiro on the edge of the box in the 53rd sent Wamangituka through for his seventh goal of the campaign.
Philipp Foerster, in his second start for Stuttgart, made it 3-1 on the hour before teenager Tanguy Coulibaly added another goal three minutes later from a Jude Bellingham mistake, with Dortmund's defence in complete disarray.
Nicolas Gonzalez, who should have been awarded a penalty earlier, got on to the scoresheet by adding the fifth goal in stoppage time after yet another Dortmund error.
Dortmund have now lost six of their eight games at home without fans. They had lost just one in 32 at home under Favre with fans in the stands.
The Ruhr valley club, who have now gone three league games without a win, slip to fifth place on 19 points, while Stuttgart move up to sixth on 17.
Champions Bayern Munich had to come from a goal behind for the fifth consecutive league game to rescue a 1-1 draw at Union Berlin, but still held on to top spot in the Bundesliga ahead of RB Leipzig on goal difference.
The hosts stunned the visitors in the sixth minute with Grischa Proemel's glancing header from a corner.
However, Bundesliga top scorer Robert Lewandowski rescued a point for Bayern, who have won only one of their last four league games, in the 67th, tapping in Kingsley Coman's cross for his 13th goal of the season on his 200th appearance for the club.
Meanwhile, RB Leipzig provisionally moved top of the Bundesliga as a 2-0 victory over Werder Bremen on Saturday lifted them a point ahead of Bayern Munich.
Buoyed by their 3-2 midweek win over Manchester United that earned them a place in the Champions League last 16, the hosts dominated Werder from the start.
Leipzig, who have now won all six of their home games this season, earned a penalty in the 26th minute and Marcel Sabitzer converted it.
Dani Olmo completed a quick Leipzig passing move with a clever dribble on the edge of the box and his low shot in the 41st gave them a two-goal cushion.
Serie A: Crotone secure fist win of season
Bottom of the table Crotone recorded a first win of the season with an emphatic 4-1 victory against Spezia.
Crotone hadn't scored in four matches but Junior Messias broke the goal drought in the seventh minute, finishing a swift counter-attack.
A mistake by midfielder Niccol Zanellato was capitalised on by Diego Farias, who scored Spezia's equaliser 11 minutes later.
However, Crotone made a fast start to the second half as Arkadiusz Reca and Eduardo Henrique found the back of the net shortly after the interval before Messias scored his second of the night in stoppage time to round off a good evening for the hosts.
Lazio continued their dismal home form in Serie A as two defensive blunders handed Verona a 2-1 win at the Stadio Olimpico.
Manuel Lazzari put through his own goal before Adrien Tameze pounced on Stefano Radu's poor back pass to give Verona their first win at Lazio for 36 years. Felipe Caicedo replied for Lazio, who have managed only one win in six home games.
Torino suffered a 3-2 defeat at home to Udinese to equal a club record of eight straight Serie A home games without victory, which was set in 1959.
Two goals in a minute from Andrea Belotti and Federico Bonazzoli leveled the game for Torino after Ignacio Pussetto and Rodrigo De Paul had given Udinese a 2-0 lead.
Hoever, Torino were only on level terms for two minutes before Ilija Nestorovski scored what proved to be the winner in the 69th minute.