Thibaut Courtois:
The Belgian was locked in. Two spectacular saves in the first half kept Real Madrid’s strong play intact - the second one, denying Álex Berenguer, was pure artistry - and he added another big stop after the break.
Trent Alexander-Arnold:
Tough break with the injury. Alexander-Arnold was having an outstanding game, heavily involved in the build-up. Kylian Mbappé’s opener came off a long ball from the former Liverpool man. His passing range gives Madrid so much depth going forward.
Éder Militao:
Rock solid. No doubts, no drama. Never looked troubled.
Antonio Rüdiger:
Once again, his commitment to the team is remarkable - this time by cutting short his recovery timeline to be available.
Álvaro Carreras:
Back in the starting XI and delivered. Both he and Alexander-Arnold (before the injury) pushed high up the pitch.
Fede Valverde:
Slowly finding his rhythm now that he’s back in midfield. That right flank is his domain. Moved smartly in Madrid head coach Xabi Alonso’s textbook 4-4-2 setup.
Aurélien Tchouameni:
Brings calm and control whenever he’s on the field. A true compass for his teammates - always in the right spot.
Eduardo Camavinga:
Camavinga’s ankle is a concern. Left with a sprain after a heavy challenge from Berenguer. Beyond the goal, he was everywhere - active in attack and defense. Could well have been his best performance of the season for Madrid.
Jude Bellingham:
Brilliant in the first half, faded in the second. Hard to sustain that level of energy and influence. Xabi stationed him on the left in the 4-4-2 at San Mamés, and Bellingham nailed the role - disciplined defensively, but popping up wherever the attack needed him in transition.
Kylian Mbappé:
What more can you say? Playing at peak Ronaldo level - or maybe even better. Two stunning goals and an assist. His first strike? One of the season’s finest. He just keeps delivering.
Vinícius Júnior:
Finally, Alonso gave him what his recent seasons have earned - freedom from some defensive duties to stay fresh up front. While not decisive on any single play, he was hugely influential and put in a strong shift.
Bench:
Raúl Asencio:
Came on for Alexander-Arnold, first at right-back, then shifted to center.
Arda Güler:
Madrid’s display in Bilbao did not bode well for Güler’s future starting prospects… until Camavinga’s untimely injury, which may throw the Turk back into the spotlight.
Rodrygo Goes:
Xabi gave him late minutes to get him going again with the score at 3-0, but he couldn’t latch onto anything meaningful.
Brahim Díaz:
Electric in his 15-minute cameo.
Gonzalo García:
With Madrid 3-0 up, Gonzalo came on to give Mbappé a richly-deserved breather.
