Villarreal vs Real Madrid

24 January 2026 · La Liga · 2025/26 · Referee César Soto Grado

Full time 0 – 2

Half-time: 0–0

  • Kylian Mbappe-Lottin 47’, 90+4’ (pen)

Match summary

Real Madrid beat Villarreal 2-0 on the road. It was goalless at half-time.

Kylian Mbappe-Lottin put Real Madrid ahead in the 47th minute and Mbappe-Lottin made it 0-2 from the penalty spot in stoppage time.

The chances backed that up: Real Madrid created 1.62 expected goals (xG) from 14 shots to Villarreal's 0.95 from 8.

Match stats

42% Possession 58%
8 Shots 14
1 Shots on target 4
6 Corners 6
63 Attacks 122
35 Dangerous attacks 76
384 Passes 551
81% Pass accuracy 88%
35 Tackles 22
19 Fouls 10
3 Yellow cards 1
0 Red cards 0
0 Offsides 0

Key events

Villarreal Real Madrid
Kick-off
2’
20’
Arda GülerShot on target
24’
27’
Kylian Mbappe-LottinShot on target
Half-time0-0
47’
Kylian MbappéLeft foot shot0-1 (Real Madrid)
Second half underway
51’
57’
62’
Alberto MoleiroShot on target
71’
Thomas ParteyDani Parejo
77’
90+4’
Kylian MbappéPenalty0-2 (Real Madrid)
Full-time0-2

How the chances added up

Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.

0.0 0.5 1.0 1.5 2.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.95 1.62 47’ Kylian Mbappe-Lottin (Real Madrid), 0-1 47’ 90+4’ Kylian Mbappe-Lottin (Real Madrid), 0-2 90+4’ 0.0 0.5 1.0 1.5 2.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.95 1.62 47’ Kylian Mbappe-Lottin (Real Madrid), 0-1 Mbappe-Lottin 47’ 90+4’ Kylian Mbappe-Lottin (Real Madrid), 0-2 Mbappe-Lottin 90+4’
Villarreal 0.95 xGReal Madrid 1.62 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Real Madrid attacking Villarreal attacking 
90+4’ Kylian Mbappe-Lottin (Real Madrid), penalty, 0.74 xG, goal 62’ Gerard Moreno (Villarreal), set piece, 0.48 xG, off target 56’ Gerard Moreno (Villarreal), open play, 0.18 xG, off target 82’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.14 xG, blocked 18’ Georges Mikautadze (Villarreal), open play, 0.12 xG, off target 39’ Dean Huijsen (Real Madrid), from a corner, 0.11 xG, blocked 25’ Arda Güler (Real Madrid), open play, 0.09 xG, off target 47’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.09 xG, goal 40’ Vinícius Júnior (Real Madrid), open play, 0.08 xG, blocked 40’ Vinícius Júnior (Real Madrid), open play, 0.07 xG, off target 54’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.06 xG, blocked 83’ Nicolas Pepe (Villarreal), open play, 0.06 xG, blocked 52’ Dean Huijsen (Real Madrid), set piece, 0.06 xG, off target 20’ Arda Güler (Real Madrid), open play, 0.05 xG, saved 69’ Vinícius Júnior (Real Madrid), open play, 0.05 xG, blocked 3’ Federico Valverde (Real Madrid), direct free kick, 0.05 xG, blocked 43’ Georges Mikautadze (Villarreal), open play, 0.04 xG, blocked 27’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.03 xG, saved 30’ Alberto Moleiro (Villarreal), open play, 0.03 xG, blocked 47’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.03 xG, off target 46’ Pape Alassane Gueye (Villarreal), open play, 0.03 xG, off target 71’ Alberto Moleiro (Villarreal), open play, 0.02 xG, saved 90+4’ Kylian Mbappe-Lottin (Real Madrid), penalty, 0.74 xG, goal 62’ Gerard Moreno (Villarreal), set piece, 0.48 xG, off target 56’ Gerard Moreno (Villarreal), open play, 0.18 xG, off target 82’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.14 xG, blocked 18’ Georges Mikautadze (Villarreal), open play, 0.12 xG, off target 39’ Dean Huijsen (Real Madrid), from a corner, 0.11 xG, blocked 25’ Arda Güler (Real Madrid), open play, 0.09 xG, off target 47’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.09 xG, goal 40’ Vinícius Júnior (Real Madrid), open play, 0.08 xG, blocked 40’ Vinícius Júnior (Real Madrid), open play, 0.07 xG, off target 52’ Dean Huijsen (Real Madrid), set piece, 0.06 xG, off target 54’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.06 xG, blocked 83’ Nicolas Pepe (Villarreal), open play, 0.06 xG, blocked 20’ Arda Güler (Real Madrid), open play, 0.05 xG, saved 69’ Vinícius Júnior (Real Madrid), open play, 0.05 xG, blocked 3’ Federico Valverde (Real Madrid), direct free kick, 0.05 xG, blocked 43’ Georges Mikautadze (Villarreal), open play, 0.04 xG, blocked 27’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.03 xG, saved 30’ Alberto Moleiro (Villarreal), open play, 0.03 xG, blocked 46’ Pape Alassane Gueye (Villarreal), open play, 0.03 xG, off target 47’ Kylian Mbappe-Lottin (Real Madrid), open play, 0.03 xG, off target 71’ Alberto Moleiro (Villarreal), open play, 0.02 xG, saved
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

Villarreal 4-4-2 Starting XI
Júnior
Navarro
Foyth 24’
Veiga
Pedraza
Buchanan 70’
Parejo 77’
Gueye
Moleiro
Moreno 70’
Mikautadze 77’
Real Madrid 4-3-3 Starting XI
Courtois
Carreras
Huijsen
Asencio
Valverde
Bellingham
Camavinga
Güler 80’
Junior
Mbappé 2
Mastantuono 74’

Player stats

PlayerPosMinGAShxGxAKPCards
Luiz Júnior GK900 0.000.000
Pau Navarro DEF900 0.000.000
Renato Veiga DEF900 0.000.000
Juan Foyth DEF230 0.000.000
Alfonso DEF900 0.000.000
Tajon Buchanan MID720 0.000.000
Pape Alassane Gueye MID901 0.030.041
Daniel Parejo MID790 0.000.693
Alberto Moleiro MID902 0.050.000
Georges Mikautadze FWD792 0.160.000
Gerard Moreno FWD722 0.670.142
Rafa Marín Sub670 0.000.000
Tani Oluwaseyi Sub180 0.000.000
Nicolas Pepe Sub181 0.060.000
Thomas Partey Sub110 0.000.000
Ayoze Pérez Sub110 0.000.061

Starters first, then substitutes. xA is expected assists.

Before kick-off

Villarreal win 25% Avg odds 3.74
Draw 23% Avg odds 4.05
Real Madrid win 52% Avg odds 1.84

Chances implied by the average closing odds, with the bookmaker margin removed.

Form going into the game

Last five league games before this one, oldest first. Select one to open it.

Previous and next meeting

Shots, expected goals and player data from Understat. Timeline, lineups and team statistics from Sportmonks. Results and odds from football-data.co.uk.