Borussia Dortmund
Gregor Kobel Taken out by Vinícius in first half and had to be alert to tip a free-kick from Kroos wide. Had no chance with Carvajal’s goal. 7
Julian Ryerson Given the unenviable task of marking Vinícius, the Norway defender looked dangerous when he was able to get forward. 7
Mats Hummels Incredible through ball to set up Adeyemi and showed his vast experience. Thought about handling Carvajal’s header on goalline. 7
Nico Schlotterbeck The defender came up with a vital touch to deny Bellingham what would have surely been the clinching goal late on. 6
Ian Maatsen Chelsea loanee produced goalline clearance to keep out an effort from Carvajal but conceded the corner that led to the crucial first goal. 6
Marcel Sabitzer Took on one of the pitch invaders and never stopped battling in midfield. Looked devastated when his side fell behind. 7
Emre Can The captain was a calming presence in midfield as Dortmund dominated the first half but the former Liverpool player faded. 6
Jadon Sancho A quiet night with only the occasional glimpse of his talent. Still looks a different player from the one who left Manchester United in January. 6
Julian Brandt Wasted Dortmund’s first sight of goal but full of the energy that epitomised his side’s fearless approach from the very start. 7
Karim Adeyemi Squandered a golden opportunity in the first half when clean through but was a constant threat with his electric pace and trickery. 7
Niclas Füllkrug Desperately unlucky not to score when his shot came back off a post and again when Courtois saved his header. 7
Substitutes: Marco Reus (for Adeyemi 72) No fairytale ending on his final appearance for the club. n/a; Donyell Malen (for Can 80) n/a; Sébastien Haller (for Brandt 82) n/a; Jamie Bynoe-Gittens (for Sancho 87) n/a
Real Madrid
Thibaut Courtois Had to be at his best to keep out Dortmund and showed no signs of injuries that have wrecked his season. Brilliant save to deny Füllkrug’s header. 8
Dani Carvajal Had his hands full dealing with lively Adeyemi and made up for missing a great chance from a corner earlier in the second half by scoring a vital goal. 8
Antonio Rüdiger Not his most commanding display as he struggled to contain Füllkrug but was the hero of penalty shootout win over Manchester City in semi-final. 6
Nacho A sixth Champions League final and a sixth victory. The veteran defender makes up for his lack of pace with superb anticipation. 7
Ferland Mendy Incredible speed got Madrid out of trouble on more than one occasion and provided excellent support to Vinícius down the left flank. 6
Eduardo Camavinga Unlucky not to score with a brilliant long-range shot. The France midfielder has grown into one of the world’s best in his position. 8
Federico Valverde Struggled to impose himself in the first half but found his rhythm after the break. Incredible stamina. 7
Toni Kroos A reliably assured presence in his last ever game at club level. He oozes class and deserved his standing ovation when replaced by Modric. 9
Jude Bellingham Looked at home on the biggest stage but was also not quite his usual self. Missed a golden chance to seal victory late on. 6
Rodrygo Could not live up to the heights of his compatriot Vinícius but the 23-year-old won the corner that led to the opening goal. 7
Vinícius Júnior Ran through his repertoire of tricks to leave the Dortmund defence feeling dizzy. Rounded off the night with a superb finish for his goal. 9
Substitutes: Luka Modric (for Kroos 85) n/a; Joselu (for Bellingham 85) n/a; Éder Militão (for Rodrygo 89) n/a; Lucas Vázquez (for Vinícius 90) n/a