Dortmund maintain seven point lead
Freiburg took a first-half lead courtesy of a Mats Hummels own goal but Dortmund secured their 11th victory in 13 games with a goal from substitute Robert Lewandowski in the 75th minute and a Mensur Mujdza own goal three minutes later.
Dortmund coach Jurgen Klopp, who told his players at halftime their performance was "ridiculous", was satisfied with their comeback.
"We played a bad first half for various reasons but the team put in a lot of effort in the second part," Klopp told reporters.
"At the end of the day we deserved the win because we were really very good after the break."
Mainz 05 ended a three-match losing streak in style when they twice came back from a goal down to beat hosts Borussia Moenchengladbach 3-2 with Sami Allagui scoring a spectacular late winner to lift them into second spot on 27 points.
Bayer Leverkusen had to settle for third place on 25, after drawing 1-1 with Bayern Munich, who dropped to ninth on 20.
Bayern's Mario Gomez gave the visitors a 34th-minute lead from close range with his eighth goal of the season.
Leverkusen levelled on the stroke of half-time when Arturo Vidal converted a penalty, awarded for a foul on Sidney Sam, who had earlier hit the crossbar with a clever left-footed shot that had keeper Joerg Butt beaten.
Hoffenheim kept up the chase with a 4-0 crushing of hosts Eintracht Frankfurt to move up to fifth on 21 points while Hamburg SV recorded their third straight away defeat, a 3-2 loss at Hanover 96.
Schalke 04's Raul scored a hat-trick, including a stunning chip over keeper Tim Wiese, to steer his team to a 4-0 demolition of troubled Werder Bremen, who have now conceded 13 goals in their last four league games.
Schalke move up to 14th on 13 points while Bremen are stuck in 11th with 15.
Freiburg were not intimidated by the leaders' track record and took a deserved, albeit curious lead, when Dortmund defender Neven Subotic tried to clear on the line but hit teammate Hummels with the ball which deflected off his leg into goal.
Borussia, who had scored 29 goals before Saturday, were toothless in the first half but came out transformed after the break, forcing Freiburg keeper Oliver Baumann to three spectacular saves in the early stages.
The pressure against defensive-minded Freiburg finally paid off when Lewandowski connected with a Marcel Schmelzer cross to head in the equaliser 15 minutes from time.
Borussia were in no mood for a draw, however, pushing forward as the desperate hosts tried to hang on.
Lukasz Piszczek crossed from the left into the box in the 78th minute and Freiburg's Mujzda slid in before Dortmund's Lucas Barrios to slot the ball into his own net.
The visitors should have sealed their win before Freibur