The loss condemned Berlin to a relegation playoff.
Haaland scored with a penalty to level the score at 1-1 with his 86th goal in his 89th match in all competitions for Dortmund who finished runners-up to champions Bayern Munich.
Hertha took the lead with an 18th-minute penalty after Ishak Belfodil was brought down in the box before stepping up to convert the spot-kick himself.
But after taking their time to settle into the game, Dortmund eventually got a penalty of their own for a handball by Marvin Plattenhardt.
Haaland, who also scored on his debut in the Bundesliga, scored on his farewell appearance for Dortmund as well to make it all square on the day.
Youssoufa Moukoko’s then scored a superb low shot in the 84th that went in off the post and snatched the three points for the hosts.
A dramatic stoppage-time winner for VfB Stuttgart over Cologne that lifted them to the 15th and safety means that Hertha finished in 16th following the loss.
Hertha coach Felix Magath must now prepare his men for a playoff battle if they are to avoid relegation