Kylian Mbappé scored twice to help Real Madrid fight back to beat Villarreal 2-1 and move top of La Liga overnight.
The hosts opened the scoring in the seventh minute when Álex Baena’s corner was deflected by Aurélien Tchouaméni, allowing Juan Foyth to score from close range. Real Madrid levelled 10 minutes later when Mbappé pounced on Brahim Díaz’s blocked shot and the ball landed at his feet for a close-range finish.
Six minutes later, the French international scored his 20th league goal of the season, latching on to Lucas Vázquez’s through ball and slotting home. Mbappé had a chance to complete his hat-trick in the second half when he latched on to Vinícius Júnior’s through ball, but the offside flag was raised.
“It’s the last time we’ll play a game with less than 72 hours’ rest,” said Carlo Ancelotti, referring to Wednesday’s gruelling Champions League shootout win over their city rivals Atlético Madrid.
Real top the table on 60 points, three clear of second-placed Barcelona, who have a game in hand after their match with Osasuna was postponed last week, and face third-placed Atlético on Sunday.
In Italy, second-half goals by Christian Pulisic and Tijjani Reijnders gave Milan a thrilling 2-1 comeback win at home against Como in Serie A, with Dele Alli sent off for the visitors minutes into his first match in two years. The former England international Alli made his first competitive appearance since February 2023 but it lasted mere minutes as he was sent off in stoppage time for stamping on Milan’s Ruben Loftus-Cheek.
Milan are in seventh with 47 points, five points behind Juventus in fourth, the final Champions League spot, with Juve playing at Fiorentina on Sunday. Como are 13th with 29 points.
Lucas Da Cunha stunned the San Siro into silence after 33 minutes, guiding a precise left-footed strike from the edge of the area into the bottom corner to put the visitors in front. Como nearly doubled their lead just before the break when Marc-Oliver Kempf had a clear chance, but Mike Maignan produced a superb point-blank save to deny him.
Da Cunha believed he had scored again six minutes into the second half, only for it to be disallowed by the video assistant referee and from then on, it was all Milan. Two minutes later, Pulisic levelled for the hosts, striking a half volley from a tight angle that went in just inside the far post. Reijnders completed the turnaround with a close-range goal in the 75th minute.

A moment of uncertainty from the goalkeeper Jonas Urbig allowed Benedict Hollerbach to score a late goal as Union Berlin secured a 1-1 home draw on Saturday with Bayern Munich, who still extended their lead atop the Bundesliga standings to nine points.
Bayern, chasing a record-extending 34th league title, climbed to 62 points. The champions Bayer Leverkusen, who are in second place, have a game in hand and travel to face Stuttgart on Sunday.
Vincent Kompany’s Bayern began on the front foot and set up camp in Union’s half but the hosts were compact in defence and largely limited their opponents to long-range efforts.
Serge Gnabry had Bayern’s best chance of the goalless first half in stoppage time when Michael Olise played him through on goal, but his shot from a tight angle was kept out by Frederik Rønnow.
Bayern kept probing after the interval, with Jamal Musiala and Harry Kane fluffing their lines from promising positions, before the substitute Leroy Sané finally broke the deadlock in the 75th minute when he fired in Olise’s cutback.
For all their early dominance, Bayern’s lead lasted just eight minutes. Union, who had been content to sit back and absorb pressure for much of the match, made a double change as they sought an equaliser and were able to catch Bayern off guard.
Josip Juranovic floated a cross into the penalty area and Urbig, who was deputising for Manuel Neuer and Daniel Peretz, both out injured, could manage only a weak punch on the ball which was headed in by the former Bayern academy player Hollerbach.
Borussia Dortmund should have scored three or four goals in their 2-0 loss at RB Leipzig, their coach, Niko Kovac, said after his team slumped to defeat despite having 25 shots.
Xavi Simons and Lois Openda scored to give Leipzig a 2-0 lead but Dortmund did their best to fight their way back into the contest and had several chances to score in the second half. A combination of poor finishing and some heroic goalkeeping from Peter Gulacsi thwarted Dortmund, who slipped to 11th place after the loss. The Ruhr valley side are on 35 points after 26 games, seven fewer than fourth-placed Eintracht Frankfurt.
“This is a catastrophe. And not the standard I set for myself,” Kovac told Sky Sports. “It’s unbelievable. I can’t explain it either. The ball just wouldn’t go in today. The fact is: We didn’t score the goals and left the pitch as unfortunate losers today. We have to score at least three or four goals.”