On Sunday, runaway leaders Bayern Munich will be looking to add to their 11-point lead when they host third-placed Borussia Moenchengladbach while second-placed Wolfsburg are at mid-table Mainz.
Dortmund bounced back from their 3-0 defeat at home to Juventus on Wednesday, which sealed a 5-1 aggregate defeat in the last 16, and two goalless draws in the Bundesliga as Gabon international Pierre-Emerick Aubameyang netted twice to leave him with 12 goals in 25 league games.
Dortmund took the lead in Hanover after Germany winger Marco Reus’s no-look pass split the defence and allowed Aubameyang to bury his shot in the 19th minute.
The lead lasted just 12 minutes as ex-Dortmund midfielder Leon Bittencourt stole possession on the halfway line, and sprinted to the edge of the area where he fed Lars Stindl whose weak shot beat the Borussia defence.
Dortmund rode their luck when captain Mats Hummels headed off the line early in the second half from Spanish striker Joselu just before the hosts were reduced to ten men.
Bittencourt was sent off on 55 minutes for a foul on Dortmund veteran Sebastian Kehl just six minutes after fouling Jakub Blaszczykowski.
Dortmund made the numerical advantage count almost immediately as Reus again provided the final pass for Japan midfielder Shinji Kagawa to score their second on 57 minutes for his first league goal since September.
Kagawa then set up Aubameyang for his second goal with a cross which saw the Gabon forward head home on 61 minutes.
Hanover set up a nervous last ten minute when Stindl beat Dortmund goalkeeper Roman Weidenfeller to make it 3-2 with 82 minutes gone, but the win leaves Borussia tenth with Hanover 14th.
Bremen stay ninth after being held to a 1-1 draw at mid-table Cologne as a first-half goal by Germany Under-29 striker Davie Selke for the visitors was cancelled out by an 88th-minute penalty from Cologne midfielder Matthias Lehmann.
Freiburg climbed out of the bottom three with a 2-0 win at home to Augsburg thanks to second-half goals from Jonathan Schmid and Nils Petersen.
Paderborn stay second-from-bottom after their goalless draw at home to ten-man Hoffenheim, who had Bosnia defender Ermin Bicakcic sent off for a second yellow card.
VfB Stuttgart remain rooted to the foot of the table despite their 3-1 comeback win at home to Eintracht Frankfurt.
After Frankfurt midfielder Haris Seferovic gave his side a second-half lead Stuttgart striker Daniel Ginczek cancelled out the advantage by scoring twice in as many minutes.
Romania midfielder Alexandru Maxim then added Stuttgart’s third to seal their first home win since September.
The result means just two points separate the bottom four teams of Stuttgart, Freiburg, Paderborn and Hamburg in Germany’s top flight.