Thomas Mueller scored Bayern's second to end Dortmund's run of five successive wins over Germany's biggest and brashest club while Robert Lewandowski replied.
Bayern, who finished as runners-up behind Dortmund in both the Bundesliga and Cup last season, needed only 11 minutes to effectively settle the match, played at their own Allianz Arena.
Croatia striker Mandzukic, surprisingly offloaded by VfL Wolfsburg in the close season, fired home from 12 metres in the sixth minute after the Dortmund defence failed to cut out Franck Ribery's low cross from the left.
Five minutes later, Mandzukic set Arjen Robben racing clear and although the Dutchman's shot hit the post, Mueller fired the rebound into the roof of the net.
Bayern, missing injured playmaker Bastian Schweinsteiger and striker Mario Gomez, failed to build on their early advantage and Dortmund came back strongly after halftime.
Lewandowski fluffed an excellent chance after the hour, miscuing from six metres with the goal at his mercy, but the Pole made amends in the 75th minute, curling a shot part Manuel Neuer to pull one back.
Bayern survived several close calls to hang on for the win.
- Robert Lewandowski
- Thomas Mueller