Valentin Stocker opened the scoring for Hertha six minutes after the break.
Striker Pierre-Emerick Aubameyang had a penalty saved for the hosts, but then converted Ousmane Dembele's cutback 10 minutes from time to earn a point.
Emre Mor was sent off for Dortmund after a push on Sebastian Langkamp, with goalscorer Stocker also dismissed.
The Swiss forward was sent off for a dangerous tackle in the final seconds.
The draw was a club-record 25th successive unbeaten home game for Dortmund, but the second game in a row they have failed to win after defeat by Bayer Leverkusen last time out.
Thomas Tuchel's side are third behind Hertha and leaders Bayern Munich, who play Eintracht Frankfurt on Saturday.
Borussia Dortmund were held to a draw by second-placed Hertha Berlin in a Bundesliga match featuring two red cards and a missed penalty.