Full match player ratings below:
Kepa—4: A showing that will not fill anyone with massive amounts of confidence. The debate will continue to rage on if Kepa retains the position as Lunin has looked more secure.
Lucas Vazquez—8: Galloped up and down the pitch, looking to provide width on the right flank. Finished the game with 2 key passes and 116 touches — actively involved all night.
Nacho—6: Solid at the back with little to do as Behrens and Volland rarely threatened.
David Alaba—3: Is it time to worry about David Alaba? Has been a shadow of his former self and has been in a poor run of form all season. Had a mishap at the back trying to clear the ball and gifted Union Berlin’s goal.
Fran Garcia—5.5: Another nervy showing with heavy touches and poor giveaways. Managed to regroup in the second half and recorded a fantastic assist. Won the ball in his own third before racing up the pitch at lightning speed to then produce a inch-perfect cross to Joselu at the near post.
Luka Modric—6: Missed a penalty and forced too many shots over the net. Had moments of magic with the outside of the boot but were too few and far between.
Fede Valverde—5: Reserved performance in the middle with little to note.
Jude Bellingham—9: A joy to watch glide all over the field. His technical superiority is always noted. Unlucky not to score after juggling the ball over an opponent but his left footed volley was saved. Showed impressive composure, stamina, and patience to deliver the assist to Ceballos on the game-winning goal after driving up the center of the pitch.
Dani Ceballos—7.5: A better performance, starting to get back into the flow of things after a long injury. Scored the game-winner and had a celebratory scream of relief. Finished the game with 2 key passes and 2 completed dribbles.
Rodrygo—8: One of the best on the field. Produced the assist by drifting to the right and beating his man off the dribble before deftly lofting the ball to Joselu. Wreaked havoc on the Union Berlin defense with his movement and dribbling. Played 4 key passes but did miss one big opportunity with a header that was saved after connecting with Jude Bellingham’s lofted through ball.
Joselu—7.5: Scored two brilliant headers but also missed two golden opportunities.
Toni Kroos—7: Entered for Fede Valverde at half-time and helped give Madrid some of the rhythm and composure they lacked.
Rudiger—7: Replaced David Alaba for the final 20 minutes and swept up every counter that came his way.
Brahim Diaz—7: Limited minutes but active and involved when on the pitch. Made the decoy run that helped open up space for Bellingham on the game-winning Ceballos goal.
Nico Paz—N/A: Late substitution for Ceballos to kill time after Madrid went 3-2 up.