Norway forward Haaland sealed victory with a sublime first-time volleyed lob after Berlin fought back from 3-0 down.
Raphael Guerrero’s fine early strike, a Haaland header and Marvin Friedrich’s own goal had put Dortmund in command.
Max Kruse’s penalty and an Andreas Voglsammer goal got Berlin back in it but Haaland settled matters late on.
Haaland has now netted 68 goals in 67 appearances in all competitions since joining Dortmund from RB Salzburg in January 2020.
He headed home Thomas Meunier’s cross to put Dortmund 2-0 up and eased.
Any late nerves by holding off a defender to beat Andreas Luthe with an audacious lofted volley from the edge of the box.
Dortmund are fourth in the Bundesliga after four wins in five games,
despite having conceded at least twice in all of those matches.