Everyone knows Real Madrid are a heavy favorite to win the Champions League for an even-bigger-record 15th time Saturday.
They’re Real Madrid, of course, and they’re taking on Borussia Dortmund, who just finished fifth in the German Bundesliga. Per ESPN Bet, Madrid have a 75% chance of lifting the trophy, while Dortmund are 1-in-4 to win their second European Cup. That makes Madrid somewhere close to the biggest favorite of the past 20 years.
But it’s still only one game, and anything can happen. Just ask Manchester City, who were taken down in the 2021 Champions League final by Chelsea, the team that finished fourth in their same league. Or Bayern Munich, who also fell to Chelsea in 2012, the year that the Blues finished sixth in the Premier League team. Or, heck, Man City, who lost the FA Cup last week to Manchester United, a team that finished in eighth place in the Premier League, just days after City won the same league.
These single-game finals tend to be decided by individual moments — whether greatness or error — from individual players rather than tactical triumphs. So, ahead of Saturday’s Champions League final, let’s rank the 30 best players between these two teams who will decide the next Champions League winner.
1. Vinícius Júnior, forward, Real Madrid
Somehow, a young, flashy, uber-productive, trophy-winning Brazilian winger for Real Madrid has become … Underrated? While his defensive impact has started to wane as he’s aged closer to his prime years of 24 to 28, he’s the best player in the world at perhaps the deepest position in the world: left wing.
No one’s better at carrying the ball, and no one who comes close to his ball-carrying contribution can also come close to his attacking production. He impacts every game he plays, and I’m not convinced that he isn’t the best player in the world.
2. Toni Kroos, midfielder, Real Madrid
What a way to go out. For the 10th year in a row, Kroos has played more than 2,000 league minutes. Per Michael Imburgio’s DAVIES model, which essentially puts a value on every on-ball action that happens across the field, the 34-year-old German added 4.97 goals with his build-up passing. That’s nearly a goal more than second-best Rodri (4.07), who played 800 more minutes for Manchester City.
Despite all of Madrid’s young talent in midfield, that’s going to be near-impossible to replace.
3. Jude Bellingham, midfielder, Real Madrid
Why not No. 1? He outperformed his expected goals by 7.7 — he scored 18 non-penalty goals from 10.3 xG. If that kind of finishing form — the third highest over-performance of anyone in Europe — is real, then he’s the best player in the world. No question about it. Of course, no one finishes that well over a long run, and he underperformed his xG in all of his previous four professional seasons.
He’s an incredible player, but the current reality is likely closer to the one we saw in the second half of the season, rather than the first.
4. Rodrygo, forward, Real Madrid
His attacking production dipped a bit this year, but he still came in over 0.5 goals+assists per 90 minutes, and I think some of that comes down to him having to facilitate and vacate space for Bellingham to run into. Rodrygo carried and passed the ball upfield more than he ever has this past season. He finds a way to fit into whatever talent is around him; he’s just a winning player.
5. Federico Valverde, midfielder, Real Madrid
Speaking of winning players, Valverde is a brilliant, dynamic, athletic, versatile player who makes his teammates better. He’s the exact kind of guy that Madrid lacked in the first Galacticos era: a superstar role player who not only fills in the gaps behind all the bigger names but can also contribute decisive moments by himself. My one gripe:
Trade some of those terrible shots from outside the box for a couple more runs into the penalty area.
6. Aurélien Tchouaméni, midfielder, Real Madrid
It feels like we still haven’t really seen Tchouaméni fully realized at Madrid. Kroos somehow getting better with age lessened the need for him to contribute in build-up play, while injuries across the backline have required him to play out of position next to Antonio Rudiger at center back.
At the same time, he was playing out of position at center back at 24 years old for a team that won LaLiga and took down both Manchester City and Bayern Munich. My guess is he’ll be the one asked to fill the Kroos-shaped void next season.
7. Antonio Rüdiger, center back, Real Madrid
He flourished at Chelsea — but that was in a back three. In his first season at Madrid, he wasn’t always a first-choice starter. In his second season at Madrid … He’s pretty much been the only healthy center back and he’s been immense playing for a team that doesn’t really do all that much to protect its center backs. Two Champions Leagues in four years, with two different teams, would be a pretty nice haul.
8. Nico Schlotterbeck, center back, Borussia Dortmund
Our first BVB player appears on the list!
I’m not sure this is a popular opinion, but I love this guy. Bundesliga center backs are notoriously hard to assess because of how different the league is, stylistically, to everyone else. But if you want a defender who is going to help you win games with the ball, there aren’t many better than Schlotterbeck. He’s been starting Bundesliga games since he was a teenager, and he’ll still only be 24 at the start of next season.
9. Eduardo Camavinga, midfielder, Real Madrid
Camavinga, meanwhile, will only be 21 at the start of next season. He has a ridiculous amount of minutes under his belt already, and I’m pretty confident he’s going to be a star — if he isn’t already. The only hesitation is that he still hasn’t become a full-time starter at Madrid. If the semifinals are any indication, he’ll be coming off the bench at Wembley, too.
10. Mats Hummels, center back, Borussia Dortmund
Hummels is 35 years old. Hummels has won more tackles than any player in the Champions League this season. Hummels has intercepted more passes than any player in the Champions League this season.
Hummels is everywhere.
11. Jadon Sancho, forward, Borussia Dortmund
I just can’t quit him. Out of any Dortmund player, he’s the one most capable of taking over the match and deciding the result on his own. No player has completed more than five successful take-ons against Madrid this season, but one of those players was Bayern Munich’s Jamal Musiala in the first leg of the semifinals. And his teammate, Leroy Sané, completed four of his own in the same game. In the first leg of the Champions League semifinal against PSG, Sancho completed 13.
12. Gregor Kobel, goalkeeper, Borussia Dortmund
This is a different Dortmund team than you’re used to seeing. With an average age, weighted by minutes played, of 26.8, Dortmund are older than your average Bundesliga side.
There’s no Sancho 1.0, or Erling Haaland, or Bellingham — the superstar prospect who will obviously leave the club sometime soon. But someone should take a look at Kobel, the 26-year-old who stood on his head against PSG and has allowed nearly seven goals fewer than expected in his three years at Dortmund.
13. Luka Modric, midfielder, Real Madrid
On a per-minute basis, 38-year-old Modric isn’t too different from 31-year-old Modric — except for the part where 38-year-old Modric is not expected to start the Champions League final.
14. Julian Brandt, attacking midfielder, Borussia Dortmund
He’s one of Dortmund’s most important players, a link between midfield and attack who can score and create a fair bit on his own. Outside of Schlotterbeck, no Dortmund player featured in more minutes this season, either. At the same time, I’m not sure he’d get much playing time at all if he were on Real Madrid’s roster.
15. Whoever is starting at goalkeeper for Real Madrid
This was a tricky one. Andriy Lunin has great shot-stopping numbers over a decent sample of games that extends beyond just this season and beyond just Madrid. Thibaut Courtois, meanwhile, is one of the best goalkeepers in the world, but he’s just coming back from a succession of serious knee injuries.
ESPN reports suggest that Courtois is in line to take the job back from Lunin and start against Dortmund. Given there’s still uncertainty over the form of Courtois and it’s not yet guaranteed that he will play, we’re splitting the difference and putting the Madrid goalkeeper right in the middle of the rankings.
16. Brahim Díaz, attacking midfielder, Real Madrid
At Milan, Diaz played a lot of minutes without producing much. At Madrid, Diaz played much fewer minutes and produced much more. He’s the ideal profile of an off-the-bench attacker for a big club — energetic, but also not so expensive or accomplished that he’ll want to leave if he doesn’t frequently start matches.
17. Ian Maatsen, fullback, Borussia Dortmund
Maybe he should be higher? Maatsen’s only season of top-flight performance is his current half-year loan spell with Dortmund. But he’s almost immediately become one of the club’s most important contributors since heading to Germany. He’s done a nice job functioning in that kind of fullback-midfielder hybrid role where you’re not really an overlapping outlet, but instead helping to progress the ball up the field.
18. Marcel Sabitzer, midfielder, Borussia Dortmund
Sabitzer is a strange player. He’s technically one of Dortmund’s two holding midfielders, but he’s rarely dictating play from deep — that’s for the center backs to do. Instead, a couple times per match, he’ll just pop up in incredibly important areas with the ball at his feet, with the potential to make a decisive play that either pushes Dortmund a step closer to scoring a goal or provides the opposition with an opportunity to counterattack in the other direction.
19. Niclas Füllkrug, center forward, Borussia Dortmund
For his career, he’s something like a goal or an assist every other game-type striker. And that’s about it. He’ll have a couple moments of savvy holdup play every match, but he’s ultimately on the ball very little, receiving very few forward passes, and not even getting too many touches in the penalty area, either.
There aren’t many hulking target strikers around these days, though, and I think Fullkrug’s unique profile has thrown off some of Dortmund’s European opponents.
20. Joselu, center forward, Real Madrid
With both Diaz and Joselu, Real Madrid this season have been a small-scale study in both team and sub effects. When you play with better players, it’s easier to produce. And when you play most of your minutes off the bench against tired legs, it’s easier to produce. When you do both? Your goals+assists rate jumps from a career mark of 0.4 per 90 all the way up to 0.64 per 90.
21. Dani Carvajal, fullback, Real Madrid
I have a feeling I might regret putting Carvajal here on the list. At this stage in his career, the 32-year-old Carvajal feels like he’s either karate-chopping a volley into the upper corner, or pleading with the referee not to send him off for his fifth-straight foul on whatever winger just ran past him. He tends to show up in finals, though.
22. Emre Can, midfielder, Borussia Dortmund
He’s the only safe passer in the team, but pretty much all of the valuable forward passing comes from players in the backline. Along with the center backs, he’ll be tasked with tracking any of Bellingham’s runs through the middle.
23. Nacho, center back, Real Madrid
All things considered, the 34-year-old club lifer was at best Madrid’s fourth-choice center back coming into this season, behind the injured duo of Éder Militão and David Alaba, Rudiger and maybe even Tchouameni, too. Although Militao has made an incredible recovery from a torn ACL earlier this season, it seems like Nacho will still get the nod Saturday.
While we’re here, though: A fully healthy Militao would’ve comfortably slid into the top 10 of these rankings.
23. Ferland Mendy, fullback, Real Madrid
He keeps the ball when he gets it. Other than that, he’s not creating anything on the attacking end and rarely winning the ball back defensively. If Dortmund are going to win, it seems like they’ll be pressing the Sancho-on-Mendy mismatch, over and over and over again.
25. Karim Adeyemi, forward, Borussia Dortmund
He’s incredibly fast, and he also trips over the ball multiple times per match. Adeyemi is the Luis Mendoza of European soccer.
26. Donyell Malen, forward, Borussia Dortmund
Per the DAVIES model, there are 10 players between these two teams who have added at least 0.1 goals per 90 minutes: Kroos, Vini, Bellingham, Rodrygo, Modric, Hummels, Brahim, Valverde, Schlotterbeck and Malen.
Malen, the 25-year-old Dutchman, comes from the Marcus Rashford mold of wingers: stay high, and when you get the ball, drive it into the box and rip a shot. Ironically, that profile balances nicely with Sancho’s touch-heavy approach on the other wing.
Were Malen healthy, he’d be significantly higher on this list, but a succession of leg injuries in April mean that he hasn’t played 90 minutes in a match since St. Patrick’s Day.
27. Lucas Vázquez, fullback, Real Madrid
I don’t know if he’d hold up over a starter’s workload for a full season, but he’s become a quite effective backup fullback as he’s aged deeper into his 30s. Seems bizarre to write this out, but Real Madrid would be totally fine if Vazquez had to play right back in the Champions League final.
28. Niklas Süle, defender, Borussia Dortmund
Maybe there’s a world where he starts the final, in an effort to slow down Vini, but the gigantic defender just hasn’t been able to string together any consistency over his career. After a breakout season with Bayern Munich as a 22-year-old in 2018-19, he’s broken the 2,000-minute mark in just one of the past five seasons.
29. Marco Reus, forward, Borussia Dortmund
This is how aging tends to work for attacking wingers: At age 34, Reus is averaging his highest pass completion percentage of the past seven seasons while attempting the fewest take-ons over that same stretch. He’s been quite effective in limited minutes this season — nearly 0.8 goals+assists per 90 — but his lack of burst has been evident against better competition.
30. Julian Ryerson, fullback, Borussia Dortmund
If you’re wondering where the Champions League might be won and lost, No. 1 on this list will likely be directly matched up against No. 30 on Saturday.