At just 21 years of age, the Norwegian has already established a sense of inevitability reserved for the game’s greatest finishers.
With Dortmund already a goal ahead following a spectacular 10th minute volley from Raphael Guerreiro, Haaland’s first came midway through the first half.
Rising above two defenders, Haaland met Thomas Meunier’s teasing cross to steer a towering header past goalkeeper Andreas Luthe.
Victory for Dortmund seemed to be assured when Union’s Marvin Friedrich turned Marco Reus’s pull-back into his own net at the start of the second half.
However, a Max Kruse penalty and an Andreas Voglsammer header put the away side within reach of a stunning comeback, teeing up a nervous final 10 minutes for Dortmund.
Enter Haaland. Just minutes after Voglsammer’s goal, the forward raced onto Mats Hummels’ long pass, wrestling with Union defender Robin Knoche.
With seven goals and three assists in just five Bundesliga appearances this season, Haaland is averaging two goal contributions a game.
Seven up for free-scoring Bayern
Robert Lewandowski continued his assault on European football’s record books as he became the first player to score in 13 straight Bundesliga home games, his 19th consecutive goal in all competitions.
Joshua Kimmich scored a brace, with Leroy Sane, Serge Gnabry and Eric Maxim Choupo-Moting all getting in on the act.
An own goal from Bochum’s Vasilis Lampropoulos summed up a torrid day for the newly promoted side.
Boasting a +16 goal difference after just five matches, Bayern sit atop the Bundesliga table with VfL Wolfsburg on 13 points and Dortmund in hot pursuit on 12.