Bayern Munich completed a perfect run through this longest of Champions League campaigns as they beat Paris St Germain 1-0 to lift the European Cup for a sixth time.
Paris-born Kingsley Coman scored the only goal just before the hour as Bayern made it 11 wins out of 11 in the competition this season, lifting the trophy in an empty Estadio da Luz in Lisbon some 85 days after the final had originally been scheduled in Istanbul.
This was a 21st straight win in all competitions, while a remarkable run through the Champions League, highlighted by their 8-2 rout of Barcelona in the quarter-finals, saw them outscore their opponents 43 to eight.
It was frustration for PSG, who have targeted this competition above all others since the flood of investment that has come under Qatari ownership.
They could point to a strong penalty claim in the second half, but were guilty of squandering a number of chances as Bayern took advantage.
The Bundesliga champions’ high defensive line was expected to get a stiff examination from Kylian Mbappe and Neymar, and it duly did in the first half.
Mbappe had already seen two of his own shots blocked from good positions when he slipped the ball through to Neymar with 17 minutes gone, but Manuel Neuer did just enough to divert his shot.
Moments later, Robert Lewandowski rattled a post, controlling a bouncing ball before spinning to find the left-hand upright as Keylor Navas scrambled across his goal.
Alphonso Davies saw yellow for pulling back Thilo Kehrer in the 27th minute and, when Bayern could only clear the resulting free-kick as far as Ander Herrera, the ex-Manchester United man fired back a fierce shot which deflected off Leon Goretzka to go wide.
A dramatic end to the half saw Bayern gift possession to Mbappe inside the area but, after exchanging passes with Di Maria, he hit a tame shot at Neuer.
Bayern then wanted a penalty when Coman hit the deck under the attentions of Kehrer, but the referee was unmoved.
But where Mbappe and Neymar had tested Bayern in the opening 45 mintues, they were kept quiet after the break.
Tempers flared soon after the restart when Serge Gnabry caught Neymar, with Leandro Paredes joining the Bayern man in the book for his reaction.
The breakthrough came just before the hour as Joshua Kimmich lifted a ball into the box, picking out Coman at the far post as the winger headed the ball back across goal and beyond the reach of Navas.
Lewandowski might have doubled the lead seconds later but Presnel Kimpembe just beat him to Coman’s cross.
Bayern were in their groove now, with Thomas Muller lifting a ball over the box to find a run from Coman, whose first-time effort was cleared from in front of goal by Thiago Silva.
PSG needed a response, bringing on Marco Veratti, missing from the starting line-up after a calf problem.
They managed to stem the tide of Bayern attacks before Marquinhos brought another fine save from Neuer when he met Di Maria’s cross just in front of goal.
Mbappe then wanted a penalty when he appeared to be clipped by Kimmich but VAR declined to take a look, while Neymar, barely seen in the second half, bent a shot just over the bar.
There was late hope for PSG but Neuer denied Mbappe from point-blank range, not knowing the PSG man was offside, before Neymar sent a shot wide as the match moved into stoppage time, but Bayern were not to be denied.