The 20-year-old striker opened the scoring on 35 minutes with what was his only touch in the opposition's box in the first half, Marco Reus' pull-back finding the Norwegian for an easy tap-in past goalkeeper Yassine Bounou.
If Haaland's 19th Champions League goal was simple, his 20th was a test of nerve in the face of drama.
Early in the second half, he bullied his way past the Sevilla defence to find the net from a tight angle only to have the goal ruled out for a foul. But the video assistant referee then awarded a penalty for an earlier shirt-pull by Jules Kounde.
The Norwegian took the spot-kick himself and saw both his first attempt and his follow-up saved by Bounou.
The spectacle did not end there, however, as VAR determined Bounou had moved too early off his line and the penalty was taken again, with Haaland finally slotting home to give Dortmund a 5-2 advantage in the tie.
Dortmund have reached the last eight of the Champions League for the first time since the 2016-17 season and will find out their opponents when the draw is made on 19 March.