England winger Sancho netted at the beginning and end of a sensational first 45 minutes for BVB, which added to its advantage through Haaland between those strikes.
This was an impressive display of strength from a Dortmund side with work still to do to secure Champions League qualification, with Haaland's second late on making sure in Berlin after a superb Dani Olmo hit.
The result means Julian Nagelsmann departs Leipzig for Bayern Munich still without the first major trophy of his career and no doubt keen to forget this missed opportunity.
The moves for the first two Dortmund goals started in the same fashion with Leipzig sloppily gifting possession to Marco Reus near halfway.
After five minutes, he took the ball from Kevin Kampl and set in motion a swift attack that passed through Haaland and Mahmoud Dahoud to reach Sancho, who shaped a gorgeous finish into the bottom-right corner.
There was then little by way of goalmouth action until Reus seized on a loose pass on 28 minutes and again fed Haaland to this time go alone, powering beyond Dayot Upamecano and contorting his body to shoot left-footed past Peter Gulacsi.
And an astonishing first half for Reus and Dortmund was complete when he raced clear on the stroke of half-time and squared for Sancho to calmly score again, the goal awarded after a VAR review overturned an incorrect offside call.
The second period was similarly frantic, albeit now with chances at either end. Christopher Nkunku hit the crossbar 19 seconds after his half-time introduction, while fellow substitute Thorgan Hazard toed agonisingly wide from another Reus pass.
Moments after Leipzig struck the woodwork for the second time, with Emil Forsberg somehow stabbing against the post, Olmo rattled in from outside the area.
Sancho should have had a memorable hat-trick but dallied after rounding Gulacsi and allowed the goalkeeper to recover. He picked out Haaland instead the next time Dortmund broke and a fortuitous finish wrongfooted Gulacsi for number four.