Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN! | OneFootball

Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN! | OneFootball

In partnership with

Yahoo sports
Icon: Attacking Football

Attacking Football

·11 December 2025

Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN!

Article image:Real Madrid 1–2 Manchester City Player Ratings: Haaland Decisive, O’Reilly Outstanding IN City WIN!

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.


OneFootball Videos


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.

PLAYER RATINGS – REAL MADRID

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.

PLAYER RATINGS – MANCHESTER CITY

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.

MAN OF THE MATCH – Nico O’Reilly

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.

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.

View publisher imprint