The Spanish team took the lead in the seventh minute when midfielder Suso's shot skidded into the net off Dortmund's Mats Hummels but the visitors responded emphatically, levelling in the 19th thanks to Dahoud's long-range strike.
Norwegian forward Haaland put the German team ahead in the 27th, playing a one-two with Jadon Sancho and showing real hunger to slide in ahead of Sevilla keeper Bono and score.
Haaland netted his 10th goal in seven Champions League games for Dortmund to increase their lead moments before halftime but Sevilla salvaged some hope of turning the tie around in the second leg on March 9 when Dutch striker Luuk de Jong volleyed home six minutes from time.
"The first half, apart from their early goal, went exactly as we had imagined," said Dortmund captain Marco Reus.
"The second half wasn't as good because we became too passive. It got harder as the night wore on so we're delighted to have won."
Sevilla substitute Oscar Rodriguez hit the post from a free kick shortly before De Jong scored while the hosts thought they could have earned a penalty in added time when De Jong went down from a challenge by Thomas Meunier which was checked by VAR but went unpunished.
"We didn't deserve to lose but they have some of the best attacking players in the world and they made the difference with three opportunities which we should have avoided. The scoreline is harsh on us," said Sevilla coach Julen Lopetegui.
Sevilla, last season's Europa League winners, went into the game on a run of nine victories in all competitions and without conceding in their last seven games.
Their recent results contrasted with Dortmund's poor domestic form of one win in six Bundesliga games.
Lopetegui had said before the game, however, that Dortmund had one of the best attacks in Europe and his words quickly rang true as his side conceded three goals in the first half, as many as they had in their previous 10 matches.
Haaland was a threat all over the pitch, striking fear into the hosts every time he picked up the ball and playing a part in all three goals.
He laid the ball off to Dahoud and the out of favour midfielder, making his first start since December, let fly with an unstoppable shot which flummoxed keeper Bono.
Haaland began the move for the second goal with a powerful run from the halfway line before combining with Sancho to score, and he latched on to a pass from Marco Reus before calmly slotting into the bottom corner for his second of the game.
"I'd been talking a lot to our coach and he said today would be my game, that I would get my chances and I did," said Haaland.