Dortmund hit Leverkusen with whirlwind
Germany international Kevin Grosskreutz twice took advantage of poor defending to score in the 49th and 53rd minutes and Mario Goetze added another in the 55th to give visiting Dortmund their 15th win in 18 league games.
Leverkusen, who had captain Michael Ballack on the bench after more than four months out injured, pulled one back through Stefan Kiessling 10 minutes from time.
Jurgen Klopp's team, who avenged their season-opening defeat by Bayer, have 46 points, 13 ahead of second-placed Mainz 05 and Leverkusen.
"These were big points for us," said a delighted Klopp who earlier this week brushed aside suggestions Dortmund could struggle with the pressure in the second half of the season.
"We picked up where we left off and fully deserved the win but it is still going to be hard for us," he told reporters.
Confident Dortmund sent out an early warning they had lost none of their edge during the four-week winter break when Sven Bender rattled the post with a clever header after three minutes.
Despite missing Japanese Shinji Kagawa, who is on international duty, and having top striker Lucas Barrios on the bench, Dortmund again went close through Robert Lewandowski in the 22nd minute.
Kiessling headed just over for Leverkusen in the 40th minute but the home team capitulated after the restart with Grosskreutz taking full advantage of a defensive blunder to slot home.
The midfielder doubled the lead when he raced clear to beat keeper Rene Adler before Germany international Goetze, with national coach Joachim Low watching in the stands, grabbed the third goal.