Haaland's brace saw Dortmund draw 2-2 in an action-packed second leg to book their place in the quarter-finals with a 5-4 aggregate win.
The 20-year-old Norwegian former RB Salzburg frontman has broken the record for the fewest games to reach 20 Champions League goals, achieving it in 14 matches, beating Harry Kane's record of 24.
Sevilla produced a frantic finale after Youssef En-Nesyri replied with a thumping spot-kick and levelled on the night six minutes into stoppage time, but they couldn't find a third which would have levelled the tie after Dortmund won the first leg 3-2.
BVB, who were still without Manuel Akanji, Raphael Guerreiro, Gio Reyna, Jadon Sancho, Marcel Schmelzer and Axel Witsel, made two changes to the starting line-up that faced Bayern on Saturday: Thomas Meunier and Dan-Axel Zagadou made way for Mateu Morey and Jude Bellingham.
Sevilla, who needed at least two goals to progress, came charging out of the blocks and – a short spell around the quarter-hour mark aside – unleashed an almost unprecedented level of pressure in the opening 35 minutes.
Borussia had no grip on the game, as the Andalusians passed the ball at an ultra-high tempo and with impressive precision like a well-oiled machine. The main threat for the visiting side came down the right flank, where right-back Jesus Navas constantly looked to push forward.
But despite this overwhelming superiority, notable chances were few and far between. Marwin Hitz was only called upon on one occasion in the first half, making a save to thwart Lucas Ocampos' drive in the third minute. Suso later fired wide of the upright on 18 minutes.
Given the run of play, the opening goal was all the more important. And it came in the 35th minute. Thomas Delaney intercepted an attack down the left flank and Nico Schulz played the ball straight to Mo Dahoud, who spotted Marco Reus. The home skipper cut the ball back with precision and teed up Haaland, who tapped the ball home to notch his ninth goal in the competition this season and give the Black & Yellows an extremely fortuitous lead at the interval.
It left Sevilla with a mountain to climb too, with three goals now needed to force extra-time.
The second period started with a great opportunity for Dortmund, as Haaland surged down the left flank only 30 seconds after the restart and squared the ball to Thorgan Hazard, who fired narrowly wide of the post from good position. The passage of play that came next was football as you've never seen it before...
In the 48th minute, Haaland stormed towards the opposition goal from the left, played a one-two with Hazard on the edge of the box and made it 2-0 from an extremely tight angle. But would it be allowed to stand or had Haaland committed a foul by shoving Fernando in the lead-up to the goal?
Referee Cakir ran over to his pitch-side monitor to review the incident and concluded there had been a foul, but then reviewed an earlier passage of play in which Haaland had been held back by Jules Koundé. Rather than awarding a goal, he pointed to the spot. Haaland stepped up and fired towards the bottom right, but keeper Bono tipped the ball around the post and made a reflex stop to deny the follow-up.
With Sevilla on the attack, the game was then halted again as the video assistant relayed that Bono had left his line too early - and the penalty kick was re-taken. Once again, Haaland chose the bottom right corner. Once again, the goalkeeper went the right way. But he couldn't get to it – and it was 2-0 after 54 minutes.
The Andalusians responded with wave after wave of attack - Hitz turned substitute Alejandro Gomez's strike behind for a corner and then denied Oscar's powerful free-kick three minutes later.
Seconds later, though, the keeper could do nothing to prevent Sevilla halving the deficit. Luuk de Jong won a penalty after being needlessly fouled by Emre Can and En-Nesyri fired the spot kick in off the underside of the bar.
As time wore on, Dortmund started to push Sevilla back into their own half and pose more of an attacking threat. An 84th minute move involving Bellingham, Haaland and Reus culminated in a shot from Dahoud. The midfielder appeared to have wrong-footed the keeper, but Bono managed to save the shot and keep his side in the game.
Six minutes of stoppage time were awarded, though it ended up being seven and a half. Sevilla drew level on the night to give them hope of forcing extra time - En-Nesyri headed home an Ivan Rakitic cross to make it 2-2 on 95 minutes, but it was the last chance for the visitors. Referee Cakir's whistle eventually sounded and scenes of jubilation ensued for the Black & Yellows.