A 0-0 draw after extra-time ensured the contest was decided by spot-kicks, Bayern winning 4-3 as Manuel Neuer's save from Sven Bender and Sokratis' strike against the post proved decisive, meaning Joshua Kimmich's miss went unpunished.
This is so sad!— 101 Great Goals (@101greatgoals) May 21, 2016
It finally dawned on Pep Guardiola that he's leaving Bayern Munich for Manchester City... pic.twitter.com/gYJbL7ME8s
The victory ensures Bayern win a record 18th Pokal trophy as Guardiola finishes his three years in charge with an impressive double prior to joining Manchester City.
Dortmund are now without a major trophy for four seasons. They have lost three consecutive Pokal finals, the 2013 UEFA Champions League final and finished runners-up in the Bundesliga three times in the last four years.
Douglas Costa forced Roman Burki into a save with a left-footed drive and Aubameyang was off-target at the other end after his pace created an opening on the break as both sides struggled to threaten in a quiet first half.
Penalties saw Bender thwarted by Neuer and Sokratis strike the foot of the post as Dortmund missed two of their first three efforts, but Burki's save from Kimmich gave them hope.
Thomas Muller and Douglas Costa converted for Bayern, however, to seal a 4-3 victory on spot-kicks, reducing Guardiola to tears.