Bayern winger Franck Ribery marked his league return after recovering from a cracked rib by scoring two goals and setting up two more as the league leaders inflicted the heaviest home defeat on Bremen in the Bundesliga.
"It was the most frustrating game for me since I've been at Werder," Bremen captain Clemens Fritz said.
Bremen defender Assani Lukimya turned Ribery's cross beyond his own goalkeeper in the 21st minute, Daniel van Buyten rose above two defenders to head Toni Kroos' free kick inside the left post six minutes later, and Thomas Mueller crossed to give Ribery a simple finish in the 38th.
Ribery then crossed for Mario Mandzukic to score on the hour, and Mario Goetze set up Mueller to make it 5-0 in the 68th.
Ribery claimed his second goal in the 82nd, when former Bremen striker Claudio Pizarro sent David Alaba through with his heel and the young Austrian pulled the ball back for the Frenchman to crown his performance. Mueller crossed for Goetze to wrap up the scoring from a difficult angle in the 90th.
"We're all happy," Ribery said.
Bayern stretched its Bundesliga record unbeaten run to 40 games.
"Today it was an honor to be a coach here," said Bayern's Pep Guardiola, who became the first coach in the Bundesliga not to lose any of his first 15 games.
"Personally, it's not special for me," the former Barcelona coach said of the record.
Son Heung-min's 18th-minute strike was enough for second-place Leverkusen to inflict Dortmund's second successive defeat at home in the Bundesliga.
"It was very important to show Germany what we can do," said Leverkusen sporting director Rudi Voeller, whose side has won all three games since losing 5-0 at home to Manchester United in the Champions League.
Former Leverkusen defender Manuel Friedrich's wayward pass from defense was intercepted by Emre Can. Can passed to Gonzalo Castro who fed Son, who rounded Dortmund goalkeeper Roman Weidenfeller and scored from a narrow angle.
Dortmund improved after the break but labored to break down Leverkusen's well-drilled defense.
"We deserved to lose," Dortmund winger Kevin Grosskreutz said.
Leverkusen defender Emir Spahic was sent off in the 81st for pushing Henrikh Mkhitaryan in the face. Mkhitaryan took issue with Spahic's heavy challenge on Robert Lewandowski.
Dortmund also finished with 10 men after Sokratis received his second yellow card in injury time, and the side's injury worries increased with both Sven Bender and Nuri Sahin taken to hospital with ankle injuries.
"Both of them could hardly walk. It's hard to tell (the extent of the injuries) but it's not optimal for us," Dortmund coach Juergen Klopp said.
Earlier, Borussia Moenchengladbach defeated 10-man Schalke 2-1 to consolidate fourth place.
Stuttgart beat Hannover 4-2, Augsburg won 1-0 at Hamburger SV though Raul Bobadilla's 18th-minute strike, and Hoffenheim won 2-1 at Eintracht Frankfurt to leave the home side 10 league games without a win.
Schalke took the lead in Moenchengladbach through Jefferson Farfan's penalty in the 17th. The spot kick was awarded after Julian Korb hauled back Kevin-Prince Boateng in the area.
Raffael equalized against his former side seven minutes later with a stunning strike inside the far top corner from some 20 meters (yards).
It got worse for the visitors before the break when Benedikt Hoewedes conceded a penalty and received his second yellow card for blocking Max Kruse's shot with his arm. Kruse duly converted the spot kick to leave the home fans singing into the interval.
'Gladbach held on for its sixth win in a row — the club's best run for 26 years — while Schalke coach Jens Keller is under increasing pressure after his side also lost in the German Cup on Tuesday.
Schalke chairman Clemens Toennies indicated Keller's job was not immediately on the line.
"We now have other very important games ahead of us. The question of the coach is not for now. It's about getting wins in the next games," said Toennies, whose side must beat Basel at home on Wednesday to remain in the Champions League.