Haaland had started as a substitute despite scoring a hat-trick on his debut at Augsburg last Saturday.
But the Norwegian, who had been linked with a move to Manchester United, made a dramatic late impression with a brace in the final 13 minutes to seal an emphatic win.
Sancho got on the scoresheet three minutes into the second half and after Mark Uth pulled one back for the visitors, Haaland emerged to continue his stunning run of form.
Dortmund's victory moved them back up to third place in the Bundesliga table, level on points with Bayern Munich and four behind leaders RB Leipzig.
Ante Rebic also came off the bench to score the only goal as Milan moved up to sixth place in Serie A with a hard-fought 1-0 win at struggling Brescia.
Ernesto Torregrossa and Dimitri Bisoli both missed fine chances to give the hosts the lead before Rebic struck in the 71st minute to hand his side their fourth straight win in all competitions.
— Stade Rennais F.C. (@staderennais) January 24, 2020