The goals came in the first half from Arjen Robben and Robert Lewandowski, with James Rodríguez playing a crucial in the build-up to both goals, with David Alaba scoring the third.
Dortmund cut the deficit back to two goals in the last ten minutes through a Marc Bartra goal, however, it wasn't enough for Peter Bosz's team. Jupp Heynckes will be exceedingly proud of his team's display under pressure and how they delivered as well.
Bayern dominate the first half
It was a frantic start to the first half after Dortmund started on the front foot, but were unable to find the killer pass before Rodríguez was fouled by Dortmund to give the game and early breather.
Bayern then tried to assert themselves with some expansive football on both wings, however, their momentum was quelled soon by the Dortmund players.
The rivalry was seen in the early clashes between Bartra and Kingsley Coman, the Frenchman was a menace for the Dortmund defense throughout the first half.
The first real chance of the game fell to Pierre-Emerick Aubameyang who was sent through by a long pass from defender Sokratis, but Niklas Süle was there to stop the Gabon forward from getting the all-important opening goal.
It was soon becoming a feisty affair and the referee was patient with dishing out any early cards, Coman and Bartra once again at the center of the action.
Soon after, Lewandowski had a big chance to score but it took a really well timed sliding tackle from the Greek Sokratis to prevent the Polish international from scoring against his former side.
Captain Robben strikes for Bayern
Heynckes' men didn't have to wait long after that chance went amiss. Captain Robben stepped up to the task and put the ball into the top corner of the net, after being set-up brilliantly by Rodríguez to make it 1-0 to the visitors.
The game really opened up after the opening goal from Robben. There were chances at both ends, Bosz's side will be disappointed with their finishing in key areas, the likes of Andriy Yarmelenko and Shinji Kagawa had good chances to equalise or maybe even take the lead. However, they were wasteful just like their opposition.
Lewandowski didn't look sharp enough in the last period of the first half. The Bayern forward was presented with more than a couple of chances to punish Dortmund however, his finishing left a lot to be desired.
He soon made amends though, Joshua Kimmich did well to find the striker with a low-cross and Lewandowski scored with a clever shot using his back-heel, some excellent improvisation from the striker there to make it 2-0.
There was a late chance for Yarmelenko, who was denied by Sven Ulreich. David Alaba was caught out by the Ukranian once again, but remains unpunished for the Bavarian giants.
Dortmund wasting quality chances in second half
Dortmund made a quick start to the second period as expected. They drew the first chance of the game after Yarmelenko's shot was deflected out for a corner, however, nothing came of that opportunity.
Lewandowski missed a big chance to make it 3-0 for Bayern. Roman Bürki saved a free header from close range and kept it at 2-0 for the home side, a brilliant save from the Swiss international.
Bayern escaped once again thanks to Dortmund's inability to finish. Christian Pulisic did well to get away from the Bayern defense to put in a low cross, however, Yarmelenko and Aubameyang's failure to co-ordinate meant that Dortmund were unable to make it 2-1 once again.
Dortmund were applying unrelenting pressure on the Bayern players, Bosz's team were desperate to get back into the team. Thiago was proving to be an effective presence in midfield for Heynckes' side. The Spaniard almost set up Robben for another classic left-foot curler.
Rodríguez was on the wrong end of another foul, this time from Ömer Toprak, who was shown yellow by the referee for his tackle on the Colombian international.
Alaba makes it three for the visitors
Lewandowski missed another chance to make it 3-0, and it was quite a shocking miss after Robben had put him through thanks to his well-timed run beyond the Dortmund defense.
Pulisic was at the center of most attacks from Dortmund, however, they were unable to find the killer pass just like in the first half. Bayern's defense was very solid especially Süle who was very impressive against Dortmund's counters.
Kagawa's attempt was blocked by Kimmich after Dortmund had a spell of quality possession around the Bayern box.
Lewandowski looked to have finally made it 3-0 when he had the deftest of connections to Alaba's cross, however the Pole did not in fact get a touch and so Alaba was credited with the goal to almost certainly seal the game for the Bavarian giants.
In the last 20 minutes of the game, Dortmund were determined to make this a tough game for Bayern. First, Aubameyang was denied another chance to score from an excellent save from Ulreich, substitute Mario Götze tried to wriggle his way past the defense, however, Kimmich was on hand to help out his defense.
A strange incident occurred in the last ten minutes of the game when the referee Tobias Stieler pulled up with some trouble to the back of his leg, fourth official Bibiana Steinhaus looked like she might be coming on. However, the Dortmund medical team assisted the referee and he was all better in no time.
Dortmund yet had some consolation to play for in the last few minutes of the game. Pulisic did brilliantly well to get past three Bayern players before passing to Marcel Schmelzer who set-up Bartra for a brilliant goal, curling in from the left side. This was the first goal conceded since the time Heynckes took over at the Allianz Arena.
Dortmund did their best to salvage some pride but at the final whistle it was Bayern that stood tall in the latest Der Klassiker.