Key events
90 min +5: A free kick for Dortmund out on the right. Reus swings it in. Éder Militão heads behind for a corner, which Courtois punches clear. That’s it, surely.
90 min +4: Lucas Vázquez comes on for the goalscoring hero Vinícius Júnior. Not a bad evening’s work for someone with heavy flu!
90 min +3: Vinicius Junior barrels down the left and wedges a cute ball towards Modric in the middle. Modric prepares to bring it down but Ryerson intercepts and clears. Three would be cruel on Dortmund.
90 min +1: The first of five additional minutes passes by.
90 min: All that’s left is admin. Éder Militão replaces Rodrygo.
88 min: Jamie Bynoe-Gittens comes on for Jadon Sancho.
87 min: … Malen crosses from the left. Fullkrug powers a header into the left-hand side of the net, Courtois with no chance of saving. But the flag goes up immediately for offside, and it’s the correct decision. More heartbreak for Dortmund!
86 min: Kroos continues to celebrate on the bench. He knows this is over … unless Dortmund can do to Real what Real did to Bayern. And …
85 min: Luka Modrić and Joselu come on for Jude Bellingham and Toni Kroos, the latter saluting the Real Madrid fans as he takes his leave of club football. What a way to sign off!
GOAL! Borussia Dortmund 0-2 Real Madrid (Vinicius Junior 83)
Maatsen plays an awful blind pass across the face of his own box from the Dortmund left. Bellingham intercepts and rolls the ball into the path of Vinicius Junior, who takes a touch down the inside-left channel before bundling the ball past Kobel and in. Number 15 so close now!
82 min: … Nacho sends a powerful header goalwards, only to be denied by Kobel’s sensational fingertip save. But it’s all in vain, because …
81 min: Another big save by Kobel, and this one is a stunner, tipping over Camavinga’s forensic heatseeker, bound for the top left. And from the resulting corner …
80 min: Kroos curls the free kick towards the top left. Kobel is behind it all the way. Then a roll of the dice by Dortmund, who send on Sébastien Haller and Donyell Malen for Julian Brandt and Emre Can.
79 min: Nothing comes of the resulting corner, but Real scent blood now. Camavinga works his way down the middle and is upended by Hummels, who goes into the book. A free kick just to the left of centre, just outside the D, and one for Kroos. A fairytale ending coming up?
77 min: The last four finals have ended 1-0. Just saying. Though as I type that, Camavinga cuts the ball back from the byline on the left. Bellingham looks to slot from 12 yards, and shapes to aim for the bottom right … only for Schlotterbeck to arrive and slide-tackle the ball wide right of the post! What an intervention! He’s kept Dortmund in it.
76 min: Dortmund had been warned about that, Carvajal flashing a header over from the same spot just after the break. And now the smash and grab is on!
GOAL! Borussia Dortmund 0-1 Real Madrid (Carvajal 74)
Kroos whips the corner from the left to Carvajal, who rises on the left-hand corner of the six-yard box and flicks a power header across Kobel and into the top right! Unstoppable, and Real Madrid, on the back foot for so long, are on course to doing what they do in finals yet again!
73 min: Vinicius Junior zips past Ryerson on the left and prepares to skitter along the byline, only for Hummels to arrive late and poke behind for a corner. The set piece is worked out to Valverde, who shoots from distance. Maatsen shanks a clearance out for another corner on the left. And from that …
72 min: The first change of the evening is made by Edin Terzic, who replaces Karim Adeyemi with Marco Reus, 35 yesterday and making his final appearance for BVB tonight. Meanwhile here’s Kári Tulinius on the good-guy debate: “Let’s not forget that back in the day Real Madrid associated with the sorts of people, that if Real Madrid was your grandfather, there would be a tacit agreement not to bring it up at family gatherings.”
70 min: In fact, replays show Kobel took a slight touch, which might even have saved the ball sailing into the net, so it should have been a corner. But Dortmund get away with one, big time!
69 min: Vinicius Junior crosses from the left. A looping inswinger towards the top-right corner. Kobel goes up with Bellingham. Both miss the ball, which flies inches wide of the post. So close!
68 min: The Yellow Wall is making one hell of a noise. They draw breath momentarily, though, when Bellingham turns up for the first time this evening, sashaying down the inside-right and entering the box before being crowded out by Sabitzer.
67 min: Real are applying a little bit of pressure for the first time this evening, and Rodrygo wins a corner on the right. Kroos sends it in. Hummels heads it back to him. Kroos tries again, and Vinicius Junior flashes over. On the touchline, Carlo Ancelotti chews gum with the ferocity of Peter Reid on amphetamine.
65 min: Another corner for Real, another break upfield from one by Dortmund. Brandt has the opportunity to release Adeyemi down the left but clanks the pass out of play. Careless.
63 min: Adeyemi crosses from a deep position on the left. Fullkrug comes flying in from the other flank and sends a Keith Houchenesque diving header towards the bottom right. It’s a piledriver, and parried sensationally by Courtois. What a goal that would have been!
62 min: Real still look shaky. Nacho’s poor pass out from the back is intercepted by Adeyemi, who looks to have been bowled to the ground by Carvajal, just outside the box. It’s a free kick all day long, but the referee isn’t interested in awarding one.
60 min: Ryerson drives down the right flank with purpose. Real just about close him out, but the Dortmund full-back has looked impressive every time he steps forward.
58 min: Carvajal gets back up and on with it, and latches onto a cross whipped in from the left flank. He attempts a first-time steer of the dropping ball into the bottom right. Kobel fumbles then claims. Real have improved in attack since the restart.
57 min: Adeyemi cynically blocks Carvajal and gets away with it. When he offers his opponent a hand up, it’s slapped away. A little bit of frustration betraying the Real man there.
56 min: Vinicius Junior and Rodrygo take turns to probe down the left and right flanks respectively. There’s nobody to find in the middle, though.
54 min: Dortmund continue to dominate possession and look the more comfortable. Real quiet. Perhaps too quiet. “Good news, Paul Griffin!” exclaims Matt Dony of our 47-min pal. “Dortmund have just signed a sponsorship deal with Rheinmetall, the arms manufacturers. Madrid are officially the Good Guys.”
52 min: Dortmund come again, and Ryerson earns a corner down the right. Hummels flicks a header, and Schlotterbeck tries to keep it alive at the far stick, but falls on his backside as he attempts a spectacular overhead kick. Goal kick. “Which arch is taller, the Wembley one or Carlo Ancelotti’s eyebrow?” Peter Oh, ladies and gentlemen. He’s here all week. Try the complimentary Wembley finger buffet.
51 min: Maatsen has a dig from distance. It’s not the greatest shot, but the ball takes a deflection and it’s a chance for Brandt to curl in a corner from the left. Camavinga heads clear. Both teams have come out looking to attack.
49 min: Kroos whips towards the top-left corner. Kobel is forced to claw it out and around the post. The set piece is then eyebrowed over the bar by Carvajal, six yards out at the near post. As close as Real have come.
48 min: Vinicius Junior then shows up the other end, drawing a clumsy foul from Hummels, just outside the box by the left-hand corner. Kroos to take.
47 min: Dortmund are on the front foot again quickly. Adeyemi drives down the left, then switches play to Sancho on the other flank. Ryderson arrives in support and wins a corner. Vinicius Junior clears. “I can’t really take an interest in this empty contest, as neither side appears to be funded by sleazy oligarchs, unscrupulous despots, or other nefarious agents, hellbent on using the game’s gaudy glitter to mask something horrific,” sighs Paul Griffin. “What’s happened to the sport’s noble traditions? The game’s gone, Scott, the game’s gone.”
Real Madrid get the second half underway. No changes. “I’m a Spurs fan, so I’m always good for some snark on the MBM,” begins Ron Stack. “But this is such a classy game, a pleasure to watch especially as a neutral. It’s as if they’re playing a different sport from what Spurs play. There, I feel better now.”
Half-time postbag. “It’s been interesting to compare the two managers’ demeanours. Terzić has the nervous energy of a chartered accountant who’s unexpectedly gotten a job interview as the CEO of a Fortune 500 company. Ancelotti, on the other hand, has the air of an emperor whose nickname is already The Great” – Kári Tulinius
“Dortmund might have had the better chances, but I’m still half expecting Gareth Bale to pop up with a cup-final goal” – Matt Dony
“Just thinking about Jadon Sancho here … what’s better, a Champions League final win or lose, or a FA Cup win?” – Aaron von Fintel
“Flicking through my Panini Topps Euro 24 sticker album pre-match, I notice the Dortmund players Schlotterbeck, Füllkrug, Adeyemi and Sule are all part of the Germany squad. All potential Champions League winners too. And that’s before we get to the players from Munich, Leipzig etc. Mind you, Scotland have FA Cup winner Scott McTominay and Premiership play off winner Che Adams, among others. So, you know, bring it on!” – Simon McMahon
“I hope someone has a tough word with the ref at half time” – Lisa Betker
“Nice of Carlo to think of England and not have Bellingham involved in the first half” – Ben Torpy
Half-time reading. It’s the end of an era tonight, so here’s what you need to know about next season’s new-look competition. Uefa haven’t worked it all out yet, you’ll be unsurprised to hear.
HALF TIME: Borussia Dortmund 0-0 Real Madrid
Real clear their lines, and the whistle goes for half time. Dortmund have been much the better side, just lacking that clinical flourish and little bit of luck in the final third. Real are fortunate their opponents haven’t taken their chances, because they’ve not really turned up yet. But this is Real Madrid. Fans of Atletico, Liverpool, Bayern Munich, Chelsea and Manchester City may point out that this film has been shown once or twice before.
45 min +3: Well, scrub that. Adeyemi makes his way down the left and crosses to nobody in particular. But with Fullkrug and Ryerson nearby, Mendy clumsily bundles the ball out for a corner. It’s sent in from the right, and Maatsen wins another corner out on the left. One last chance.
45 min +2: Real knock it around to little effect. A sudden sense that, if both teams could walk in for half-time right now, they would.
45 min: There will be four additional minutes. Will one of these teams end up cursing those damn pitch invaders?
44 min: Sancho skins Kroos down the right but can’t find anyone with his cutback. Then Sabitzer questions the award of a foul, and he’s the latest to go into the book. The referee probably sees himself as a no-nonsense gunslinger; another interpretation would be overly fussy pedantic bore.
42 min: The corner’s not great. Real aren’t quite in Need To Hear The Whistle mode, but Carlo Ancelotti probably wants a word.
41 min: Sabitzer has a crack from 25 yards. It’s heading towards the bottom left. Courtois tips the ball around the post for another Dortmund corner.
40 min: Vinícius Júnior falls over as he scampers down the left. A dive? He’s already been booked, remember. But though the linesman signals nothing, the referee awards a foul in his favour. Schlotterbeck is incensed, and talks himself into the book. It’s not been a banner evening for referee Slavko Vinčić so far.
39 min: Carvajal and Valverde attempt to regain their earlier rhythm down the right, but only manage to run the ball out for a goal kick. Real have been strangely impotent up front so far. Kobel has had nothing to do. So far, yet, etc.
37 min: Kobel probably ensured Vinicius Junior went into the book with some world-class rolling around. For a split second, things threatened to kick off, but everyone calmed down again soon enough.
35 min: Kobel lets Schlotterbeck’s pass run through the six-yard box. Vinicius Junior slides in, hoping to block and send a rebound into the net, Benzema-Karius style. He catches his man as the keeper clears, and goes into the book as a result. It was a foul, but a yellow card seems harsh: Vinicius was entitled to go for the ball, and there wasn’t too much contact.
33 min: Sancho and Ryerson combine to get the better of Mendy down the right. The latter makes off towards the box, only for the whistle to sympathetically blast in Mendy’s favour. Dortmund look more likely to open the scoring, by some distance as well.
32 min: Dortmund stroke it around in the middle of the park. They must be wondering how they’re not leading. “This is like 2022 all over again,” writes Tom Barneby. “Real living a charmed life before the inevitable goal to make it 1-0 after 85 minutes. I feel bad for Dortmund already.”
30 min: Corner for Real on the right. But they’re seriously rattled, and the set piece gives Dortmund the opportunity to break six on three! Sancho, on the right, crosses for Adeyemi on the other flank. Adeyemi enters the box only to be shoved over by Mendy. From behind? Not quite, so it’s no penalty, though Mendy was gambling right on the edge there.
28 min: Another huge chance for Dortmund! Adeyemi is sent tearing down the inside-left channel, leaving Camavinga in the dust. He enters the box and shoots from a tight angle. Courtois saves, but only parries in the direction of Fullkrug. However the ball is slightly behind the striker, who twists in mid-air in an attempt to steer goalwards, but can’t get any purchase on the ball. It sits up in mid-air and the keeper claims. A huge stroke of luck for Real!
27 min: Real Madrid have enjoyed 61 percent of possession so far. But it’s BVB who have had all the big chances. Will they regret not taking one? Vinicius Junior spins Ryerson with absurd ease down the left and looks for Rodrygo in the middle. Schlotterbeck hooks clear to spare Ryerson’s blushes.
26 min: Can gets up and walks to the touchline. It looks as though he’ll be fine to continue. And indeed he is. Back on he comes.
25 min: I suspect, though I’m not 100 percent sure, that Fullkrug would have been flagged offside. But it was damn close. VAR would have had some work to do. Meanwhile Can goes down and requires some treatment. Play stops.
23 min: Sabitzer makes good into the Real box on the right and cuts back for Adeyemi, who enters the box only to be denied the chance of shooting by Camavinga. He wants a penalty but he’s not getting one. Dortmund come straight back at Real, Adeyemi dinking a pass through the centre of the defence and releasing Fullkrug, who steers the ball across Courtois and onto the base of the right-hand post! Real clear. How did that not go in?!