The hosts could have made the breakthrough as early as the third minute had Erik Jendrisek been more forceful with his header.
Dortmund started to control the match thereafter, but almost conceded in the 16th minute when Jendrisek's header came off the post.
Both sets of players were struggling to get their game going in top gear because of the snow, but that did not deter Robert Lewandowski from taking a crack at the Freiburg goal from just outside the box with Oliver Baumann left stranded.
Ilkay Gundogan could have given the German champions the lead on the stroke of half-time when a loose ball fell to him, but he could fire it only wide from 20 yards.
Six minutes into the restart Mario Gotze volleyed over the crossbar from just eight yards.
However, Jurgen Klopp's side eventually took the lead three minutes later.
Just before the hour mark, Dortmund almost conceded the equaliser when Jendrisek forced Roman Weidenfeller into a superb save from just five yards.
Lukasz Piszczek almost made it 2-0 to the visitors with 15 minutes left on the clock when he shot just wide of the post from inside the Freiburg penalty area.
It did eventually finish 2-0 to Dortmund as with seven minutes of normal time remaining, Gotze latched onto Lewandowski's ball into the box to slot it calmly into the Freiburg goal.