“It was important after the last two games to get three points again,” Dortmund goalkeeper Gregor Kobel said.
Haaland’s 33rd-minute penalty had given Dortmund the halftime lead against Fürth, which claimed its first win of the season against Union Berlin on Sunday.
But the visitors were furious before the break when Jude Bellingham escaped a second yellow card after fouling Max Christiansen. Fürth coach Stefan Leitl was booked for his protests.
“If that had been a (Fürth) player, he would have been gone,” said Fürth sporting director Rachid Azzouzi, who suggested unequal treatment from referees.
“I think it’s subconscious, if you commit a mistake against Dortmund then there’s theater. If you make a mistake against Fürth, no one will talk about it in three hours,” Azzouzi said.
Dortmund coach Marco Rose took Bellingham off at halftime. Bellingham will be suspended for Saturday’s game at Hertha Berlin for an accumulation of five yellow cards, meaning the England international is already on his winter break.
Fürth remained competitive after the break, when there were some whistles from Dortmund supporters frustrated with their team’s lack of urgency.
Haaland finally settled the game with a perfectly placed header to Julian Brandt’s free kick. Brandt also set up Malen for the third in the 89th.
Bayer Leverkusen gave away a two-goal lead for the second time in as many games as Hoffenheim came back to draw 2-2. Leverkusen lost 5-2 at Eintracht Frankfurt at the weekend.
Patrik Schick scored twice to become Bayer Leverkusen’s top scorer for the opening half of a season with 16 Bundesliga goals altogether.
There was also a record for Leverkusen star Florian Wirtz, who became the youngest player to clock 50 appearances in the Bundesliga. Aged 18 years and 226 days, Wirtz beat the mark held by American midfielder Gio Reyna.
But Hoffenheim fought back with two late goals in three minutes from Angelo Stiller and Munas Dabbur. Leverkusen’s Moussa Diaby was also sent off in injury time.
Also, Daniel Caligiuri’s late penalty earned Augsburg a 1-1 draw against visiting Leipzig, while Union Berlin and Freiburg drew 0-0.
Eintracht Frankfurt goalkeeper Kevin Trapp’s late saves ensured Borussia Mönchengladbach fell to a fourth consecutive Bundesliga loss.
Trapp stopped efforts from Matthias Ginter then Patrick Herrmann to secure a 3-2 win after a frenetic finale as Gladbach pushed for an equalizer against Frankfurt’s 10 men. Frankfurt moved up to seventh ahead of the 17th round’s late games.
Gladbach was hoping to bounce back after three heavy defeats in a row — the 4-1 loss to Cologne in the Rhine derby, a 6-0 thrashing at home from Freiburg, then another 4-1 defeat at Leipzig.
But it was clear that coach Adi Hütter’s team was feeling the strain, despite Florian Neuhaus scoring with the first chance of the game against Hütter’s former team in the sixth minute.
Rafael Borré equalized against the run of play in the 45th, set up on a counterattack by Sebastian Rode, who sent Jesper Lindström on his way down the right to cross for the unmarked Borré.
Lindström took advantage of more lax defending to make it 2-1 to Frankfurt in the 50th, four minutes before Ramy Bensebaini equalized from the penalty spot.
Daichi Kamada answered straight away with Frankfurt’s third as Gladbach’s defense remained fallible.
The visitors were reduced to 10 men when Brazilian defender Tuta was sent off with his second yellow card in the 70th. But Trapp and Frankfurt held on.
More AP soccer: https://apnews.com/hub/soccer and https://twitter.com/AP_Sports
Ciarán Fahey on Twitter: https://twitter.com/cfaheyAP