Dortmund were impressive ahead of Tuesday's Champions League last 16, first-leg, clash at home to Paris Saint-Germain, coached by ex-Borussia boss Thomas Tuchel, and this convincing win lifted them to second in the Bundesliga.
They sit a point behind leaders Bayern Munich, who play strugglers Cologne away today.
Dortmund dominated a limited Frankfurt team, who looked a shadow of the side which hammered Bayern 5-1 last November and beat Leipzig 2-0 last month.
Frankfurt could only come up with one shot on goal, compared to Dortmund's 17 at Signal Iduna Park.
After goals by Lukasz Piszczek and Jadon Sancho, Haaland again showed some clinical finishing to smash home a second-half pass and continue his phenomenal tally before Raphael Guerreiro added a late fourth.