Attacking Football
·11 December 2025
Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN!

In partnership with
Yahoo sportsAttacking Football
·11 December 2025

Manchester City walked into the Santiago Bernabéu knowing history rarely smiles kindly on visitors – and certainly not on Erling Haaland, who had previously left Madrid looking more like a tourist scanning for tapas than a Ballon d’Or contender. This time, he left with something far tastier: a Champions League goal, a match-winning penalty, and Real Madrid’s centre-backs sulking in his wake.
But it wasn’t smooth sailing. City started nervously, survived a penalty scare, gifted Rodrygo his first goal in 32 games (yes, you read that right), then dragged themselves level through a scruffy but vital Nico O’Reilly tap-in. Haaland then bullied Antonio Rüdiger into conceding a penalty, dispatched it with the calm of a man filing paperwork, and City never looked back.
Madrid pushed, City suffered, and Guardiola gesticulated like a man possessed – but somehow, some way, Man City earned just their second-ever away victory against Europe’s aristocrats.
A bruising, breathless, beautifully ugly victory. Here are your player ratings.
Manchester City nearly Blow It vs Fulham! Foden & Haaland Heroics in 5–4 Win – Player Ratings!: Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN!
Thibaut Courtois – 5/10
Brilliant one minute, baffling the next. Spilt Gvardiol’s header for the equaliser and then saved expertly from Haaland. A night that could’ve been great had he not handed City their route back into the match.
Federico Valverde – 5.5/10
Ran hard, pressed hard, tackled hard – and suffered even harder against Doku’s pace. Pure commitment, minimal reward. City simply targeted him, and Madrid never adjusted.
Raúl Asencio – 4.5/10
If Doku had a highlights package, Asencio starred in every frame as the victim. Won aerial duels but was burnt repeatedly in transition. His recovery sprints must still be echoing down the Madrid tunnel.
Antonio Rüdiger – 3/10
A defender who loves chaos finally met someone who creates even more of it. Needlessly wrestled Haaland to the ground for a VAR-confirmed penalty. Lucky not to walk for a second yellow. A rare night where the German’s warrior routine fell flat.
Álvaro Carreras – 7.5/10
Outstanding. Snuffed out threat after threat and surged up the pitch like a man who forgot City had sprinters in their front line. Madrid’s best defender by an enormous distance.
Dani Ceballos – 5/10
Invisible at times, tidy at others. Never truly influenced the rhythm, which is presumably why he was selected. A chess piece that City happily played around.
Aurélien Tchouaméni – 6/10
Alternated between composed midfield marshal and stunned spectator as City countered past him. Couldn’t impose his will on the match.
Jude Bellingham – 5.5/10
Worked relentlessly, drove Madrid forward… and then ballooned the best chance of the second half over the bar like a man allergic to equalising. Not his sharpest European night.
Rodrygo – 7.5/10
Madrid’s brightest spark. Ended his goal drought with a vicious finish, drifted cleverly, and gave Gvardiol problems early on. Looked like their most likely scorer all evening.
Gonzalo García – 6/10
A focal point without focal moments. Worked hard, flicked intelligently, but could never influence the penalty box exchanges.
Vinícius Jr – 6.5/10
Threatening with every sprint – but wasteful in the decisive moments. Missed a header, miscued a volley, and City’s doubled-up marking finally muzzled him. Not for lack of effort.
SUBSTITUTES
Arda Güler – 5/10 – Lively but never decisive.
Brahim Díaz – 5/10 – Might as well have brought a book; barely touched the ball.
Endrick – N/A – Arrived too late to matter.
Manchester City 3–2 Leeds Player Ratings: Foden’s Double Sparks Dramatic Victory!: Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN!
Gianluigi Donnarumma – 6/10
Beaten by a thunderbolt and otherwise untroubled. Solid long kicking, stayed home on crosses, and didn’t have the Bernabéu meltdown that many goalkeepers suffer. Not spectacular, not disastrous – just present.
Matheus Nunes – 6.5/10
Survived a potential penalty incident by sheer luck as contact was made outside the box. Improved defensively as the game went on.
Rúben Dias – 7.5/10
A warrior in the trenches during Madrid’s late push. Commanded the backline and made three huge interventions. A proper leader’s performance.
Joško Gvardiol – 7.5/10
Early wobble, late dominance. Forced the equaliser with a towering header that Courtois mishandled. Composed himself in the second half and made crucial blocks. A redemption arc in real time.
Nico O’Reilly – 8.5/10
Goal poacher, ball carrier, tactical fouler, defensive emergency extinguisher – this was the full O’Reilly experience. Reacted fastest for City’s equaliser and produced key recovery runs all night. Immense maturity for his age.
Bernardo Silva – 4.5/10
A ghost wearing a No. 20 shirt. Lost the ball before Madrid’s opener, slowed attacks, missed obvious passes and looked half a second behind the game. Suspended for City’s next match – a blessing based on this showing.
Nico González – 6.5/10
Started sluggishly, grew steadily. Broke up play, intercepted passes and held midfield structure together once City took the lead. Quiet but crucial.
Phil Foden – 5.5/10
A rare off day. Couldn’t find his weight of pass, misfired several through balls, and rarely threatened between the lines. Subbed off before he damaged City’s rhythm further.
Rayan Cherki – 6.5/10
Nutmegged Rüdiger (which deserves its own rating), delivered the corner leading to the equaliser, and carried danger with every dribble. But faded as Madrid pushed harder.
Erling Haaland – 7/10
Bullied Rüdiger into a penalty. Scored at last in the Bernabéu. Denied a second by Courtois. Not vintage Haaland, but absolutely pivotal Haaland.
Jeremy Doku – 7.5/10
Electric, unpredictable, and occasionally infuriating. Forced errors, stretched Madrid constantly, and set up Haaland’s century moment with his early cross. City’s best winger on the night.
SUBSTITUTES
Savinho – 5.5/10 – Sharp, but heavy touches cost him.
Omar Marmoush – 6/10 – A willing runner with limited openings.
Tijjani Reijnders – 5.5/10 – Tried to create late counterattacks.
Nathan Aké – N/A – One huge clearance at the death.
Inside Guardiola’s Manchester City 2.0: The Tactical Evolution That Broke slot’s Liverpool: Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN!
A cathartic night in the Spanish capital. The goal he scored was more than a goal – it was a psychological victory at cementing his spot in the team in which he was often considered to be the weakest link, amidst the tension of a gruelling Champions League tie. Defended with maturity, chased lost causes, and helped City defend decisively. Guardiola demanded a machine; O’Reilly delivered.
Manchester City 3–0 Liverpool: Player Ratings as Pep’s 1000th Delivers a Masterpiece!: Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN!
This wasn’t the flowing Guardiola masterpiece neutrals dream of – it was grit, grind, resilience and timely brilliance. But Champions League success is built on nights like these: hostile stadium, early adversity, defensive panic, and somehow emerging with victory.
City now seize control of their UCL group and send a warning to Europe: even when they’re not anywhere near their best, beating them still requires perfection.
Madrid weren’t perfect. Haaland was decisive. O’Reilly was relentless. City march on.









































