Dortmund bounced back in style from their 3-1 Champions League defeat to Olympiakos with a dazzling performance reminiscent of their championship-winning form of last season.
It was their fourth successive league win, putting them on 19 points from 10 games. Bayern, on 22, travel to Hanover 96 on Sunday.
Captain Sebastian Kehl powered in a header on 66 minutes to complete the rout.
"We showed how important goals are in a game," Dortmund coach Juergen Klopp said. "Our outstanding pressing game and passing game made us better than our opponents. It was very difficult to defend against what we offered today."
Borussia Moenchengladbach dropped to fifth on 17 points after Hoffenheim forward Vedad Ibisevic, starting for the first time after a months-long injury break, struck on 56 minutes to give the hosts a 1-0 win.
Hamburg SV, with new coach Thorsten Fink in charge, came from a goal down to earn a 1-1 draw against VfL Wolfsburg, with Mladen Petric cancelling out Mario Mandzukic's first-minute goal with a lovely chip over keeper Diego Benaglio.
The draw lifted Hamburg, still looking for their first home win in more than seven months, off the bottom into 17th place.
It was one-way traffic in Dortmund from the start, with Japan international Kagawa scoring from close range after good work from Kevin Grosskreutz down the left on seven minutes.
Germany international Schmelzer doubled the lead with the first Bundesliga goal of his career, a curled shot from 14 metres after Cologne defenders allowed Mario Goetze too much space in the box. Lewandowski added another in the 44th.
With Cologne, who had won three of their last four games, still dazed, Dortmund's Neven Subotic rattled the crossbar on the stroke of halftime.
The hosts struck twice more in the second half, with the disappointing visitors offering their first and only shot on goal in the 86th minute.