Norway showed their clinical edge from kick-off, quickly taking the lead through former Blue Oscar Bobb on 14 minutes before Haaland got his first of the evening four minutes later.
The hosts looked to be in the driving seat in their UEFA Nations League League A Group 4 fixture, but a Mikkel Damsgaard goal shortly before the half-hour left the door open for Denmark.
Rasmus Hojland drew the visitors level on 60 minutes, with the game now a more even contest.
And of course it was Norway’s all-time top goalscorer Haaland who fired Norway back in front with 15 left to play, finding the top-left corner from inside the Denmark box.
It means Norway go top of their group on goal difference, with Portugal also securing a win on Thursday evening.
In Portugal’s 1-0 hard-fought victory over Wales, City captain Rúben Dias played out the entirety of the game.
The 29-year-old was a stalwart at centre-back, as he helped limit Wales to just one shot on target.
Joao Felix’s deflected shot from the edge of the box was the difference as Dias won his 81st cap for his nation as they kickstarted their Nations League title defence on the front foot.
Earlier in the day, Abdukodir Khusanov played every minute of Uzbekistan’s 3-1 friendly win over Iran and operated at centre-back.
A brace for Eldor Shomurodov and late Khusain Norchaev strike were too much for the visitors with their only goal of the afternoon a Jakhongir Urozov own-goal.