After a goalless first period, second-half goals from Raffael and Peter Niemeyer gave the visitors a 2-0 lead.
That was to prove sufficient, with Robert Lewandowski's late consolation the only response the hosts could muster.
Hertha were first to threaten but Tunay Torun snatched at a shot from 10 yards and the ball bobbled wide of the right post.
Dortmund had the better of the rest of the first half and could have taken the lead when Neven Subotic fired in a low free-kick from just outside the box and goalkeeper Thomas Kraft had to make a fine diving save at the expense of a corner.
Kraft was called on again shortly before the interval when the ball broke to Kevin Grosskreutz eight yards out, but he shot straight at the goalkeeper.
Hertha took the lead five minutes after the interval when a mix-up between Lars Bender and Mats Hummels presented Raffael with his opportunity. The Brazilian saw his first shot repelled by goalkeeper Roman Weidenfeller but followed up to finish left-footed and put his side in front.
The visitors made the game safe with nine minutes remaining when Dortmund failed to defend a corner and Niemeyer was left unmarked three yards out and finished with his left foot.
Dortmund pulled a goal back when Lewandowski headed home from near the penalty spot, but it was too little too late.