(CNN) -- The woe is over for Bayern Munich in Champions League finals after it defeated Borussia Dortmund 2-1 in a pulsating all German contest in London on Saturday.
The woe is over, too, for Arjen Robben, who scored the winner in the 89th minute and set up Mario Mandzukic's opener in the 60th. Ilkay Gundogan's penalty in the 68th had pulled Dortmund level prior to Robben's nifty decider.
Robben was labeled a villain by Bayern fans last year, when he missed a penalty and other opportunities in the final against Chelsea.
"I do not know how many times I dreamed about it but I said to many people that tonight was going to be our night," Robben told Sky Sports.
No wonder he was celebrating wildly at the final whistle.
Indeed the euphoria among Bayern players at Wembley was fully understandable, since this was a team that had lost three of its four previous finals, two in agonizing fashion.
It began in 1999.
Minutes away from beating Manchester United, two injury-time goals from the Red Devils deprived Munich and led to one of the most lasting images in Champions League history -- defender Samuel Kuffour overflowing in tears and pounding the turf at Barcelona's Nou Camp in frustration.
Kuffour would later say it was destiny for United.
The same, perhaps, could have been uttered when Chelsea inflicted more heartache in 2012 in Bayern Munich's own stadium.
With Bayern firmly in control of the game at 1-0, this time a late effort from Chelsea striker Didier Drogba tied proceedings and prompted extra time -- when Robben didn't captalize from the spot -- and then penalties.
Paying the price for missed opportunities -- Robben and striker Mario Gomez were particularly guilty -- Chelsea prevailed to give the Blues their first trophy in football's most prestigious club competition.
Another English team had gotten the better of Bayern Munich. The heart of Bayern's midfield, Bastian Schweinsteiger, was on that occasion inconsolable, mirroring Kuffour.
"We knew after last season what we needed to do and we have improved," Robben said.
There was a sense of destiny about Dortmund, since Jurgen Klopp's men scored two injury-time goals in the second leg of the quarterfinals against Malaga to advance.
But when Borussia Dortmund couldn't convert its superiority in the first half into goals, Bayern Munich slowly got into the game.
Bayern, which won the Bundesliga title by 25 points over Dortmund and crushed Barcelona in the semifinals of the Champions League, now has the chance to emulate the United team of 1999 and achieve the treble. Jupp Heynckes' men will be the heavy favorite in the German Cup final on June 1 against VfB Stuttgart.
If not for a tax scandal involving Bayern Munich president Uli Hoeness, who was at Wembley, the season could almost be classified as perfect.
Some would ask: "Who needs Pep Guardiola?" But his arrival next season, replacing Heynckes, potentially heralds an exciting period. He can take advantage of a highly skilled side in implementing his possession based style.
Mario Gotze will add to Munich's impressive squad, making the move from Dortmund in the off-season. An awkward scenario in the final was avoided since midfielder Gotze, described as a "once in a century player" by German legend Matthias Sammer, missed out due to injury.
Dortmund striker Robert Lewandowski, whose four goals in the semifinals against Real Madrid bolstered his reputation further, is being linked with a move to Bayern.
In short, the future could bring even more trophies.
What must Dortmund -- thought of by some as a team of destiny after its injury-time comeback in the quarterfinals against Malaga -- be thinking?
It was Dortmund, which nearly went bankrupt in 2005, who made the much brighter start, even though Klopp appeared anxious as he took his spot on the bench.
While Dortmund's fans clad in team colors of yellow and black sang in the stands, the usual smile on his face wasn't to be found.
Polish international Jakub Blaszczykowski's shot from outside the box might have sailed harmlessly over the bar in the 10th minute, but it signaled the start of an impressive spell.
Lewandowski, much sought after, made a fine run inside the box before he ran out of room and was unable to deliver a cross.
A minute later, Lewandowski's curled effort from distance was comfortably pushed over the bar by Bayern keeper Manuel Neuer.
Neuer, the German No. 1, would be busy in the next 10 minutes, stopping Blaszczykowski with his legs from close range -- his best save of the evening -- keeping out Marco Reus' left-footed strike and thwarting Sven Bender.
Neuer was unusually busy, since he averaged a mere two saves per game all season.
Such was Bayern's frustration that winger Franck Ribery used an arm to cast aside Lewandowski. Former Liverpool manager Graeme Souness, an analyst for British television, said Ribery deserved a red card.
Italian referee Nicola Rizzoli, however, didn't even show him a yellow. Rizzoli would be in the spotlight later.
Bayern finally worked its way into the game midway in the half.
Ribery found himself in space on the left and put in an inviting cross for striker Mandzukic -- who started ahead of German international Gomez. His header was tipped over the bar by Roman Weidenfeller.
On the ensuing corner, midfielder Javi Martinez leapt the highest, though his header didn't hit the target.
Now Weidenfeller was busy.
He made himself big to deny Robben and near the end of the half, defender Mats Hummels misjudged a ball in the air to hand the alert Robben a second chance. Weidenfeller utilized his face to keep the match scoreless at the interval.
Dortmund didn't start as well in the second half, yet wasn't put under any pressure by Bayern.
That changed in the 59th minute, when Mandzukic's header fell straight to Weidenfeller. The shot was tame, but Dortmund's frailty in the air was again exposed.
Bayern took the lead a minute later, as Robben finally dealt with Weidenfeller.
When Weidenfeller charged off his line, Robben went around the German and sent a low cross to Mandzukic, who had the simplest of tap ins.
Bayern was on its way. Or was it?
Needing to stay tight at the back for the next 10 minutes, Bayern defender Dante gave Dortmund a lifeline. He completely missed his clearance in the box and kicked Reus in the stomach.
Rizzoli awarded Dortmund the penalty, but Dante -- already booked -- didn't receive a second yellow.
Stopped three weeks ago by Neuer on a penalty, Lewandowski gave way to IIkay Gundogan. The diminutive midfielder sent Neuer the wrong way in the 68th.
Bayern fans must have thought it was déjà vu, especially when Dortmund defender Neven Subotic made a last-ditch clearance with Robben about to pounce from a yard out.
Both teams continued to press forward, and Weidenfeller dived to his left to stop David Alaba. Rizzoli waived play on when Thomas Muller felt he was impeded by Subotic, the last man, but Bayern's angst didn't last long.
With Dortmund's defense unable to clear, Robben waltzed into the box and deftly wrong-footed Weidenfeller.
It was redemption for Robben and Bayern.