Kylian Mbappe’s first-half double sealed Real Madrid a hard-fought 2-1 comeback win at Villarreal and lifted them three points clear of Barcelona at the top of LaLiga.
Mbappe notched his 19th and 20th league goals of the season – he now has 30 in all competitions – after Juan Foyth had given Villarreal an early lead.
Real were not at their best following their midweek Champions League penalty shootout win against city rivals Atletico and goalkeeper Thibaut Courtois made several key saves.
💪 Mbappé brace inspires Madrid comeback win to move top!
— Real Madrid C.F. 🇬🇧🇺🇸 (@realmadriden) March 15, 2025
Villarreal slipped to back-to-back defeats and remain five points adrift of the top four.
Real Mallorca maintained their top-six challenge as Kosovo striker Vedat Muriqi’s stoppage-time penalty sealed a 2-1 home win against Espanyol.
Muriqi’s own goal had given Espanyol a second-half lead, while he also saw his earlier penalty saved before Takuma Asano headed Mallorca level.
Marcos Alonso’s late penalty clinched Celta Vigo a 1-0 win at Real Valladolid to boost his side’s top-six hopes, while Girona were held 1-1 at home by Valencia.
Not the result we wanted today, but a huge thank you to our supporters. We keep going ✊ pic.twitter.com/NFDDDZa9xk
— FC Bayern (@FCBayernEN) March 15, 2025
Bundesliga leaders Bayern Munich moved nine points clear at the top despite being held 1-1 at Union Berlin, for whom Benedict Hollerbach grabbed a late equaliser.
Leroy Sane had fired Bayern in front in the second half, but they have taken one point from their last two league matches.
Mainz remain third after twice letting slip the lead and having Dominik Kohr sent off in a 2-2 home draw against Freiburg.
Kohr was shown a straight red card after Jonathan Burkardt had given Mainz a first-half lead and following Michael Gregoritsch’s equaliser, they went back in front through Andreas Hanche-Olsen, only for Lukas Kubler to peg them back again.
Alassane Plea struck a hat-trick as Borussia Monchengladbach maintained their top-six challenge with a 4-2 win at Werder Bremen. The visitors’ Tim Kleindienst was sent off in time added on.

Borussia Dortmund’s Bundesliga struggles continued as they lost 2-0 at Leipzig, who climbed up to fifth.
Augsburg moved to within four points of the top six after Phillip Tietz’s second-half goal clinched a 1-0 home win against Wolfsburg.
In Serie A, former Tottenham and Everton midfielder Dele Alli’s first competitive appearance in two years lasted just nine minutes as he was sent off on his Como debut in a 2-1 defeat at AC Milan.
Milan hit back through Christian Pulisic and Tijjani Reijnders after trailing at half-time to Lucas da Cunha’s effort.
Alli, who joined Como in January, replaced Da Cunha in the 81st minute and saw his yellow card for a clumsy tackle on fellow Englishman Ruben Loftus-Cheek upgraded to red by VAR in the final minute.

Verona and Torino both won 1-0 against Udinese and Empoli respectively, while Monza were held 1-1 at home by Parma.
In Ligue 1, Mika Biereth and Maghnes Akliouche were on target for Monaco, who won 2-0 at Angers to climb back into the third Champions League place.
Lille’s top-three hopes were dealt a blow in a 1-0 defeat at 10-man Nantes, who had Jean-Charles Castelletto sent off before Mostafa Mohamed headed a late winner, while Lens won 1-0 at home against Rennes.