Dortmund now has until 10 January to digest another disappointing result as the winter break commences, while Bayern will look ahead to 2022 with another title very much in its sights.
There was a flurry of chances early in the capital. Marwin Hitz was at full stretch to deny Jurgen Ekkelenkamp inside six minutes, with Alexander Schwolow standing up to an effort from Marco Reus moments later. Julian Brandt clipped Haaland's deflected cross over Schwolow to send Dortmund, missing Gregor Kobel, Mats Hummels and Jude Bellingham, into at the break with its nose in front.
Hertha quickly learned the error of its profligate ways six minutes into the second half, Vladimir Darida spraying a pass over the top of the Dortmund defence for Ishak Belfodil, who burst away from Axel Witsel and slotted beyond Hitz for 1-1.
Marco Richter added a quick-fire second with a thunderous finish after Brandt had conceded possession to Maolida.
Thorgan Hazard had a goal ruled out for offside, before Dahoud miscued from an inviting Donyell Malen cross.
After Richter volleyed in his second of the contest off the back of another Brandt mistake, substitute Steffen Tigges gave Dortmund a lifeline when he headed home Raphael Guerreiro's cross with seven minutes remaining.
But there wasn't enough time to find any more goals for the visitors, who have plenty to think about over the break.