Haaland set up Marco Reus for his 100th league goal for the club, but Felix Passlack’s own goal restored parity.
Thorgan Hazard slotted home Haaland’s pass before the 21-year-old Norwegian netted his first of the afternoon.
Further strikes from Giovanni Reyna and Haaland made it 5-1 before Jens Petter Hauge’s late consolation.
Marco Rose’s side could have won by an even more handsome margin had Reus’ goal on the stroke of half-time not been ruled out by the video assistant referee.
Haaland now has 62 goals in 61 Dortmund appearances in all competitions, including 42 in 44 Bundesliga outings.
The win was Dortmund’s eighth in a row in Germany’s top flight, equalling the club record set under current Liverpool manager Jurgen Klopp during the 2011-12 campaign.