BVB now trail leaders Bayern Munich by nine points after they saw Robert Lewandowski's first-half goal cancelled out with five minutes to go
The defending champions could not build on their encouraging 1-1 draw at Manchester City in the Champions League on Wednesday night, as they were held to another disappointing domestic result which leaves their hopes of a third straight title in serious jeopardy after only seven games.
Robert Lewandowski opened the scoring with a tap in on 26 minutes, but intense Hannover pressure in the second-half was rewarded with the equaliser from Mame Biram Diouf in the 86th minute.
Dortmund now trail leaders Bayern Munich by nine points , while Hannover stretched their unbeaten home record to 22 matches, and remain only one point behind BVB in the standings.
Jurgen Klopp made only one change to his team from the Etihad Stadium, as Sebastian Kehl filled in at midfield for Ilkay Gundogan, who could not recover in time from a back injury.
And Dortmund could have been in front after only 20 seconds, as a glanced header from Marco Reus was parried by Ron-Robert Zieler at the far post.
Hannover would hit back soon enough when Artur Sobiech took aim from outside the box, but Roman Weidenfeller was equal to his chipped effort and tipped over the bar.
There was a real ebb and flow developing to the game, and the home side nearly broke free again through Lars Stindl on the left byline, but Neven Subotic was alert to make a superb sliding challenge to halt a dangerous situation in its tracks.
But despite Hannover’s threat going forward, Dortmund were always in the ascendancy, and found themselves a goal to the good after 26 minutes.
Mario Gotze worked the ball wide to Lukasz Piszczek on the right flank, and the full-back raced clear towards the byeline before squaring to Lewandowski, who made no mistake from close-range.
Dortmund could have had a second immediately after the restart, but Jakub ‘Kuba’ Blaszczykowski blasted wide after isolating Konstantin Rausch just inside the area.
However, the hosts were left cursing their luck moments later after Jan Schlaudraff’s goalbound effort was saved spectacularly by Weidenfeller, and Subotic’s deflected clearance ricocheted just wide of the post.
The tempo of the match slowed down as half-time approached, but Hannover were able to fashion one last chance before the break. Didier Ya Konan had rounded Weidenfeller and was primed to slot into an empty net, but Piszczek showed great awareness to race back onto the goalline and hack clear.
The Dortmund full-back would nearly come up trumps at the other end of the pitch five minutes after the restart after letting fly from 20 yards out, but his attempt bounced agonisingly off the base of the post.
Gotze was next to see a golden chance go begging after he broke the offside trap and rounded Zieler, but his indecision cost him a place on the scoresheet as the hosts were able to get back and take the ball off his toes.
That sparked Hannover into life, and they looked to have responded in the 55th minute as Mario Eggimann slotted home a loose ball from a corner. However, the goal was chalked off for an apparent push by Ya Konan on Marcel Schmelzer, to the absolute fury of the home side and their fans.
Die Roten continued to press forward into the Dortmund half. A ricochet off Piszczek nearly snuck into the net, but Weidenfeller was alert to bail out his defender with a timely save.
But Hannover should have been level in the 77th minute. Rausch did extremely well to manufacture space on the left and square towards Diouf in front of goal, but from point blank range, he somehow could not convert.
Diouf would redeem himself with four minutes to go though, as an almighty scramble from a free kick afforded him an inch of space to slot confidently under Weidenfeller.
Dortmund could not muster a response in the little time that remained, and had to settle for the draw that leaves them with a daunting nine-point gap on Bayern Munich.