Bayern Munich won their fifth Champions League title on Saturday, beating Bundesliga rivals Borussia Dortmund 2-1 at Wembley Stadium.
Mario Mandzukic opened the scoring on the hour mark, but Ilkay Gundogan drew BVB level from the penalty spot eight minutes later. The game appeared to be headed for extra time when Arjen Robben struck in dramatic fashion, slipping in the game-winning goal with just seconds left in regular time.
Robben, Gundogan and Mandzukic were among the strongest performers on the night, but were just three of many who made a strong mark. Others, like Marcel Schmelzer and Dante, were less impressive.
Here are player-by-player ratings for the individuals on show in Saturday's match.
Roman Weidenfeller (7/10): Forced to make a number of outstanding saves, particularly in the first half. Only made one mistake, coming off his line in the second half only to let Muller round him easily. Certainly cannot be faulted for either goal conceded.
Manuel Neuer (7.5/10): Tested far more than usual, but time and time again made the necessary stops. Beaten only from the penalty spot.
Marcel Schmelzer (4/10): Robben was his man to mark, but the Germany international let the Dutchman run riot. It was a physical mismatch, but Schmelzer ought to have done better, in some capacity, to keep his opponent at bay.
Lukasz Piszczek (6/10): Did very well against Ribery, combining well with Blaszczykowski in defense to force the Frenchman to leave the wing in search of better opportunities. Less aggressive in possession than usual, but played his primary role—that of a defender—very well.
David Alaba (7.5/10): Proved why, even at 20 years of age, he is one of the world's very best full-backs. Outplayed even Lahm and showed exceptional tactical discipline. Forced a fine save from Weidenfeller late in the game.
Philipp Lahm (7/10): The captain was exceptional in defense and often left his opponents running forward without the ball. Lahm rarely ventured forward until the latter stages of the match, when he finally let his outstanding attacking qualities shine.
Neven Subotic (6/10): Made a spectacular goal-line clearance that will long be remembered, but was also partly at fault for letting Robben in to assist the opener. Played a better game than Hummels, it should be noted.
Mats Hummels (5/10): Hasn't been at his best all season long, and that showed again in the final. The prophetic foresight that has characterized his game in the past went missing, and may have cost BVB the game.
Jerome Boateng (7.5/10): Took a knock in the first half but recovered, which was very good news for Bayern fans. Perhaps Bayern's most likely weakness heading into the match, Boateng played with newfound maturity and tactical discipline. Was turned once by Lewandowski, but otherwise did very well to track the physically imposing striker.
Dante (5/10): Not the best of matches for the Brazilian, who was outplayed by his partner Boateng. Booked early for a professional foul, which may have influenced his play. Later conceded a penalty that could have seen him sent off and resulted in the equalizer.
Sven Bender (5/10): Made a surprise cameo in the penalty box on 22 minutes, but couldn't finish. Closed down space throughout the match, very characteristic of his style of play, but is a cut below the other holding midfielders in both technical and physical attributes—and it showed.
Ilkay Gundogan (7.5/10): Proved himself as one of Europe's best holding midfielders in yet another outstanding performance on the greatest stage. Many world-class players have been stymied by Bayern's midfield this season, but Gundogan ran the show for for the first half-hour before settling into a more conservative role. When the time came to take a penalty, he made no mistake.
Javi Martinez (8/10): His head-to-head with Marco Reus was perhaps the most exciting and influential duel of the match. The Spaniard's size and physical strength were huge assets against a smaller Dortmund central core. Struck a great header midway through the first half that, although saved, marked the turning point for Bayern, as they finally began to settle in.
Bastian Schweinsteiger (7/10): His importance to the Bayern buildup was made abundantly clear over the first 25 minutes or so, when he was forced to play level with the centre-backs, and the Bavarians had absolutely no success in possession. Was able to assert himself somewhat more after the half-hour mark, but absolutely played in Martinez's shadow.
Jakub Blaszczykowski (6/10): Had the first clear chance of the game but was denied by Neuer. Was hugely important in minimizing Ribery's influence on the wing, but when the Frenchman shifted, he became dangerous.
Marco Reus (7.5/10): Dortmund's biggest danger and the second-biggest threat on the pitch behind Robben. Whether he dribbled at defenders or laid the ball off with his first touch, he was always creating chances for himself or teammates. It was no surprise when he won the penalty that led to the equalizer.
Kevin Grosskreutz (6.5/10): Minimally used this season but came out in good form in the biggest game of his life. Played a couple of excellent passes in the early minutes and was very strong in aiding Schmelzer in defense on the wing.
Arjen Robben (9/10): Squandered chance after chance in the first half, and it seemed as if it just wasn't his night. When he finally had a chance to turn provider, however, he made his mark, as he slipped into the box and assisted Mandzukic to open the scoring. Cemented his place in history with a dramatic, late winner.
Thomas Muller (7/10): Bayern's most influential attacking threat in the Champions League before this game, but gladly stood in Robben's shadow. Assisted a couple of clear chances for the Dutchman, but was perhaps too hesitant to go for goal himself: At 1-1 he had an open goal to shoot at, but instead crossed and saw the ball cleared off the line.
Franck Ribery (8/10): Struck a frustrated figure for the first hour as he was kept shackled by the BVB defense—this much showed when he struck out at Robert Lewandowski. Ribery finally made his impression felt and in a huge way, when he played Robben in ahead of the opener. And in the closing minutes he again came up aces, as he set up the Dutchman for the winner.
Robert Lewandowski (6/10): Faced two physically imposing Bayern center-backs and had little joy. He once rounded Boateng, but pushed the ball out of play; later he was denied after a nice move. Still very combative and important as an outlet, but if this was indeed his final game at Dortmund, it was nowhere near his best performance. It could have been worse, though; he could have been sent off for stepping on Boateng's leg.
Mario Mandzukic (8/10): As usual, played the role of workhorse more than that of striker. Moved out to the wing and even into defense when needed, and fought for long balls. Only intermittently a threat in attack, but worked with a great economy. After forcing a great save on the half-hour mark, he scored the all-important opener.
Nuri Sahin, Julian Schieber, Luiz Gustavo and Mario Gomez (N/A): All four substitutes came on in injury time and had no noteworthy influence on the game.