
Kylian Mbappé and Vinícius Júnior led Real Madrid to a 3–1 victory over Villarreal, momentarily sending the Spanish giants to the top of the La Liga standings ahead of the October international break.
After three consecutive away matches, Real Madrid returned to the Santiago Bernabéu to take on Villarreal in a battle for first place of La Liga. Éder Militão returned to shore-up Xabi Alonso’s backline while Dani Ceballos got a surprise nod over Jude Bellingham in the midfield.
The hosts dominated possession from the opening whistle, pinning the Yellow Submarine into their own half as they searched for gaps in Villarreal’s disciplined low block. Los Blancos mustered chance after chance in the first half, but lacked the end product needed to get on the scoresheet.
Of the 12 shots Real Madrid sent the way of Arnau Tenas, it was Aurélien Tchouaméni’s header from close range that came the closest to finding the back of the net, but the ball drifted just wide of the post in the 22nd minute.
The best chance of the first half, though, belonged to Villarreal. Tani Oluwaseyi came to life on the counter attack, getting in between Dean Huijsen and Militão before blowing by both defenders on his way to Real Madrid’s penalty box. The striker, who was through on goal, saw his effort saved by a diving Thibaut Courtois to keep the game scoreless.
Alonso’s men came out of the tunnel with their sights set on goal, applying a renewed pressure to the visitors’ backline. It only took three minutes for Mbappé and Vinícius Júnior to connect for the first goal of the evening.
The France international flicked on a diagonal pass from Militão, which found Vinícius Júnior in acres of space on the left flank. The 25-year-old winger dribbled past Santiago Mouriño and into the box before firing a right-footed shot into the back of the net, the ball taking a deflection off Santi Comesaña on the way.
Vini Jr. finds the back of the net to give Real Madrid the lead 🙌 pic.twitter.com/EsgGKoQ1dz
— ESPN FC (@ESPNFC) October 4, 2025
Vinícius Júnior doubled Real Madrid’s lead from the spot in the 69th minute. The Brazilian won the penalty for Los Blancos with another blistering run into the box that forced a clumsy challenge from Rafa Marín.
Villarreal pulled one back through Georges Mikautadze, but any hopes of a comeback were stifled when Mouriño received his second yellow card of the evening. Down to 10 men, the visitors had no chance of stopping Mbappé from sealing the game with his 14th goal of the season.
Real Madrid secured all three points, effectively bouncing back from their poor Madrid derby defeat last weekend. Alonso will anxiously await a fitness update for Mbappé, though, who came off the pitch in noticeable pain in the dying stages of the victory.
Check out Real Madrid’s player ratings from the match below.
Real Madrid Player Ratings vs. Villarreal (4-2-3-1)

Subs not used: Andriy Lunin (GK), Sergio Mestre (GK), David Alaba, Fran García, Raúl Asencio, Endrick, Gonzalo García.
Player of the Match: Vinícius Júnior
Villarreal (4-4-2): Arnau Tenas; Santiago Mouriño, Rafa Marín, Renato Veiga, Sergi Cardona; Tajon Buchanan, Santi Comesaña, Thomas Partey, Pape Gueye; Tani Oluwaseyi, Alberto Moleiro.
Subs: Georges Mikautadze, Nicolas Pépé, Alfonso Pedraza, Adrià Altimira, Dani Parejo.
READ THE LATEST LA LIGA NEWS, TRANSFER RUMORS AND GOSSIP
This article was originally published on www.si.com as Real Madrid Player Ratings vs. Villarreal: An Unstoppable Vinicius Junior Delivers Three Points.