With six games left after this weekend, Dortmund move ever closer to their first Bundesliga title since 2002 with second-half goals from Germany's rising star Mario Goetze, two by Paraguay's Lucas Barrios and Kevin Grosskreutz.
Hanover took the lead when Norway striker Mohammed Abdellaoue netted after 57 minutes, but Dortmund equalised less than two minutes later.
Wunderkind Goetze, 18, put his side level on 52 minutes before Poland defender Lukasz Piszczek fired in a perfect cross from the sidelines which Barrios buried in the net with a 64th-minute header.
Goetze then turned provider when his clever pass nine minutes later which allowed Barrios to fire home again before Grosskreutz completed the rout in the 83rd minute.
Second-placed Leverkusen stayed in the title race thanks to a single goal from midfielder Sidney Sam which gave them a 1-0 win and three crucial points at Kaisterslautern.
Bayern Munich leap-frogged Hanover into third, thanks to their 1-0 win over bottom-side Borussia Moenchengladbach, who are destined to be in the second division next season.
With the game played at a low tempo, Dutch winger Arjen Robben spared Bayern's blushes with his ninth goal in 10 league games after missing the start of the season with injury.
The win puts Bayern seven points behind second-placed Leverkusen -- and an automatic Champions League place next season -- while 'Gladbach are seven points from safety.
Former German champions Stuttgart and Werder Bremen drew 1-1 with both sides still dangerously close to the drop-zone.
Fifth-placed Mainz 05 remain on course for a European place next season thanks to their 1-1 draw at home to Freiburg.
The German Football Federation (DFB) are set heavily to punish relegation-candidates St Pauli following an attack on the assistant referee during Friday night's game against Schalke 04.
With just a minute left of the match and Schalke leading 2-0, assistant referee Thorsten Schiffner was struck in the upper back by a cup full of beer and referee Deniz Aytekin abandoned the game soon after.
A 43-year-old man faces charges having been arrested and interviewed by Hamburg police on Friday night over the incident, but was then later released.