BVB beat Bayern to lift Super Cup
Marco Reus opened the scoring in just the sixth minute following an error from goalkeeper Tom Starke and, despite a frenetic 45 minutes, the scoreline remained at 1-0 when the teams went in at the break.
Arjen Robben levelled on 54 minutes, the first of three goals in as many minutes as Daniel van Buyten handed Dortmund back the lead with an own goal and Ilkay Gundogan curled home smartly.
Robben, the scorer of the winning goal in last season's Champions League final between the two sides, made it 3-2 to give Guardiola's team hope of a comeback.
But, as Bayern pressed for another equaliser with Thomas Muller hitting the bar, Reus grabbed his second of the game late on to wrap up the win for the home side at Westfalenstadion.
Bayern had Starke between the posts for the injured Manuel Neuer and the absence of Germany's number one was soon felt as Dortmund took an early lead.
Robert Lewandowski's sweeping cross was met by a stooping header from Sven Bender which should not have caused Starke too many problems, but he flapped at the ball and only touched it to Reus, who nodded in.
The ball was in the back of the net again only two minutes later as Lewandowski raced through, but the offside flag had been raised long before the Pole slid the ball past Starke.
A succession of chances for Xherdan Shaqiri and Thomas Muller were thwarted by Roman Weidenfeller at the other end before Starke made amends for his error by denying Lewandowski with his foot.
Dortmund ended the half back in the ascendency, but Gundogan's shot was deflected wide of the far post off Jerome Boateng.
Robben silenced the fans who booed his every touch, unforgiving after his Champions League final winner, by bringing Bayern back on terms in the 54th minute, meeting Philipp Lahm's cross unmarked to head in from six yards.
Almost from the restart, Bayern found themselves behind once again as Gundogan's cross was headed past Starke, who certainly could not be blamed this time, by his own defender Van Buyten.
Less than 60 seconds later, Gundogan struck again, picking his spot in the far corner of Starke's goal after turning inside Muller.
Robben replied again for the visitors, turning on the spot before firing past Weidenfeller with his favoured left foot, and Bayern sensed the chance to equalise.
Muller hit the top of the crossbar with a volley, teed up by Thiago, before gaps opened up at the back and Pierre-Emerick Aubameyang capitalised with his pace only to be denied by Starke.
Bayern did not learn from their mistake, however, and Aubameyang was put through again, this time setting up Reus to complete the scoring and earn Dortmund the first title of the 2013-14 season.