Goals from the center back and Germany international were the difference as Jurgen Klopp's men ground out a victory in poor conditions after two games without tasting triumph.
In an extremely scrappy affair, two second-half goals, one from Neven Subotic and the other courtesy of Mario Gotze, were enough to get BVB's Bundesliga defense back on track after a dire opening period.
The wintry temperatures gave rise to a cagey start as both teams struggled to find a cohesive rhythm, with Freiburg's attack particularly hampered by the thick snow.
Nevertheless, it was the home team which threatened first. After seeing two headers blocked at the near post, Daniel Caligiuri lifted the ball into the middle and in his attempts to clear it away, Lukasz Piszczek diverted the ball towards his own net and was fortunate Marcel Schmelzer's touch guided it against the post.
Oliver Baumann had already made a relatively comfortable save from a Marco Reus free kick in the opening stages and it was another BVB set piece that called the keeper into action again, with Mats Hummels agonizingly close to diverting Schmelzer's dead-ball delivery into the net after 27 minutes.
Freiburg was giving a good account of itself against the reigning champion, but the team was guilty of failing to take its chances. Fallou Diagne was unable to keep down a free header from 10 yards out, before Julian Schuster's mazy run ended with a pull-back that no one was on hand to tap in.
Klopp clearly had some strong words for his side during the break and it began the second half in a far more aggressive manner.
After Piszczek failed to capitalize on Reus' smart pass within a minute of the restart, BVB wasted another chance in the 51st minute. Kevin Grosskreutz made his first contribution with a drive to the bye line but Gotze blazed his teammate's resulting cross over the bar.
Dortmund did not relent and finally got the reward for a bright start to the half in the 54th minute. Reus' whipped free kick was flicked on off the head of Subotic and the ball bounced in at the far post.
Freiburg could well have drawn level moments later, but Erik Jendrisek saw his eight-yard effort poked away by the onrushing Roman Weidenfeller.
The game soon returned to the scrappy, disorganized football that plagued the first half and as a result opportunities were again few and far between.
Despite that, Dortmund managed to confirm the win in the 83rd minute, as Robert Lewandowski fed Gotze, who drilled a shot past Baumann and into the bottom corner.
Victory ensures that BVB holds onto fourth position, temporarily nine points off top spot, while Freiburg drops down to 10th place.
Follow GOAL.COM USA on