Published: 2017-08-06 14:52:06 BdST
Bayern goalkeeper Sven Ulreich saved Marc Bartra's sudden-death spot kick to settle a riveting tie at Dortmund's packed Signal Iduna Park, as Bayern twice came from behind during the 90 minutes and also turned the tide in the penalty shootout.
Dortmund looked to have done enough after top scorer Pierre-Emerick Aubameyang scored a superb 71st-minute goal to give the home side a 2-1 lead but they were undone by a late Lukasz Piszczek own-goal.
American 18-year old forward Christian Pulisic fired Dortmund ahead in the 12th minute when he robbed Javi Martinez and steered the ball past Ulreich, moments after Robert Lewandowski fired over the bar at the other end.
Bayern's hitman Lewandowski made amends six minutes later with a simple tap-in from three metres after a darting run and cross by right back Joshua Kimmich, who beat the offside trap.
Dortmund keeper Roman Buerki made four superb saves in the opening half to deny Thomas Mueller twice, Sebastian Rudy and the evergreen Franck Ribery, who gave his markers a roasting on the left flank.
The pace remained unrelenting after the break as Bayern pressed forward but were again punished for squandering several opportunities.
Released by strike partner Ousmane Dembele, the elusive Aubameyang slipped through the middle and dinked his shot with the outside of his foot over Ulreich from 13 metres.
Just when the home fans were ready to start celebrating, an almighty melee ensued in the 88th minute after the ball cannoned off the Dortmund crossbar and Piszczek turned it into his own net after Kimmich got a touch.
Dortmund again gained the upper hand during the shootout as Buerki saved Kimmich's shot, but his counterpart Ulreich then denied Sebastian Rode and Bartra to hand Bayern their first trophy of the season.