Marco Reus gave Jurgen Klopp's side the lead on Saturday but a remarkable turnaround saw the visiting team score two goals before the break and take all three points.
It is the first time Dortmund has lost three consecutive home league games since March 2000 and the club has now claimed just one win in six Bundesliga outings, with the result leaving it 12 points adrift of Bayern Munich going into the winter break.
Marco Reus looked to have set the home side on its way to a much-needed win when he slotted home in the seventh minute, but the visiting team struck back midway through the half when Adrian Ramos swept in a cross from close range.
A catastrophic error from Marian Sarr, making just his second league start of the season, then let in Sami Allagui in the final minute of the first period as the visiting team turned the match around.
Dortmund made four changes from last week's 2-2 draw against Hoffenheim, with goalkeeper Roman Weidenfeller and midfielder Henrikh Mkhitaryan among those to return, while the visiting team made three alterations, including a first team debut for 18-year-old goalkeeper Marius Gersbeck.
Reus gave his side the perfect start, running on to Sebastian Kehl's lofted pass to slot the ball under the advancing Gersbeck from an angle, with the goalkeeper needlessly rushing from his line as Reus ran wide of goal.
Gersbeck went some way to redeeming himself five minutes later, though, by brilliantly denying Robert Lewandowski.
Weidenfeller had to be alert at the other end to charge from his line and block Ramos' effort following a poor back pass from Kevin Grosskreutz.
Hertha pulled level in the 23rd minute as Allagui robbed Erik Durm near halfway, advanced forward and delivered a perfect cross that Ramos was able to tuck home from six yards for his 11th Bundesliga goal of the season and his fourth in three matches.
On the stroke of halftime, a piece of disastrous defending from Sarr handed Hertha the lead.
The 18-year-old dallied on the ball 40 yards from goal and was robbed by Allagui, who was composed in rounding Weidenfeller and slotting the ball into an empty net.
Sarr was replaced by Lukasz Piszczek at the interval but Dortmund continued to struggle to break down the Hertha defense in the second period, Sokratis Papastathopoulos heading into the ground and over the crossbar in the 55th minute.
Substitute Jonas Hofmann forced a flying save from Gersbeck 10 minutes later with a rasping effort from the edge of the box as the home team looked to exert greater pressure.
Despite dominating possession in the closing stages, the team could not break down a resolute Hertha outfit, which claimed its third successive victory.