Drogba stepped up to rifle home the winning penalty for Chelsea after earlier saving his side with an equalising goal two minutes from time to cancel out what looked like a winner from Thomas Mueller as the match finished at 1-1.
It was an agonising defeat for Bayern, who saw midfield maestro Bastian Schweinsteiger miss with their final kick to give Drogba the opportunity to score the penalty to clinch the shoot-out 4-3.
Chelsea goalkeeper Petr Cech also saved brilliantly from Ivica Ovic to get Chelsea back into the shoot-out after Juan Mata had missed the Premier League side’s opening effort.
Drogba’s winning spot-kick was a fairytale ending for the 34-year-old Ivorian striker, who had been sent off in the final minutes of Chelsea’s Champions League final defeat in Moscow four years ago.
But the loss left Bayern shattered as their dream of lifting their fifth European title before their own fans at their home ground ended in agony.
A match Bayern had dominated went to penalties after a frenetic finish to normal time, with Mueller heading Bayern into the lead seven minutes from time only for Drogba to equalise for Chelsea in the 88th minute.
A dramatic start to extra-time then saw Bayern’s former Chelsea winger Arjen Robben miss a penalty — saved by Cech — after Drogba had needlessly brought down Franck Ribery in the area.
For much of the match a Bayern victory had looked the likeliest outcome, with the Bundesliga giants revelling in the raucous support of their home fans.
They suffered an early setback when Schweinsteiger was booked for a nervy handball after only two minutes, but thereafter they enjoyed a virtual monopoly of possession.
Schweinsteiger was the first to set alarms off in the Chelsea back four, having his shot deflected behind by Gary Cahill after only three minutes.
Toni Kroos was next, his low shot drifting just wide of Cech’s upright.
Chelsea coach Roberto Di Matteo had sprung a surprise by handing a first Champions League start to youngster Ryan Bertrand in an effort to cut off the supply lines to Arjen Robben down the right flank.
However the wily Dutchman found space with ease in the eighth minute, cutting in from the flank and curling a shot over the bar.
The former Chelsea winger produced the best chance of the half on 21 minutes, teasing the ball past Jose Bosingwa to dart into the area. Robben’s shot was low and hard, but Cech stuck out a leg and the ball cannoned to safety.
The closing stages of the half saw Bayern up the tempo and they carved out a string of openings that they could well have scored from.
On 36 minutes Ribery and Diego Contento combined down the left to send Contento racing away. The left-back whipped in an inviting cross but Mueller could only slash his first-time volley wide of the post.
Chelsea, largely anonymous in attack until that point, then forced Neuer into his first save of the match.
A sweeping counter-attack saw captain Frank Lampard lay off to Salomon Kalou whose thumping low drive was gathered at the near post by the Bayern keeper.
Bayern’s pressure should have earned a reward but Mario Gomez squandered two promising openings shortly before half-time, slicing from close range on 39 minutes and then blazing over from just inside the area after losing Cahill.
The second half followed largely the same pattern as the first, with Bayern having a goal disallowed for offside by Ribery on 54 minutes.
The Germans were thwarted by some dogged Chelsea defending, with Cole saving the Londoners with a series of telling interventions.
It looked all over for Chelsea when Mueller headed in to put Bayern 1-0 seven minutes from time. But Drogba had other ideas to set up the extra-time finale.
However Chelsea looked to have squandered parity in the fourth minute of extra-time, when Drogba needlessly clipped Ribery to concede the softest of penalties from referee Pedro Proenca.
Once again though Chelse’sa refusal to yield came to their rescue, Cech diving low to his left to thwart Robben’s spot-kick with his legs as the tension rose to excruciating levels.
Substitute Olic almost won it for Bayern in the 108th minute, but his shot flashed across goal as the game went to penalties.