Marco Reus and Robert Lewandowski both scored twice before Jakub Blaszczykowski added a fifth as Jurgen Klopp's side made it six wins and a draw from their opening seven matches.
Freiburg lost Fallou Diagne to a straight red card a minute before the break, the defender pulling down Lewandowski inside the area for the penalty that gave Reus his second goal.
The hosts made three changes from the side that needed extra-time to defeat 1860 Munich in the DFB-Pokal in midweek, with Roman Weidenfeller, Nevan Subotic and Pierre-Emerick Aubameyang replacing Mitchell Langerak, Sokratis and Jakub Blaszczykowski.
Freiburg manager Christian Streich made two alterations from Wednesday's 2-1 win over Stuttgart, Diagne and Sebastian Freis coming in for Pavel Krmas and Mike Hanke.
Subotic had the game's first chance in the third minute, heading narrowly wide from a corner as the hosts applied some early pressure.
Lewandowski was the next man to threaten the Freiburg goal 15 minutes later, making space for himself in the box before firing over the crossbar from an angle.
Aubameyang should have given Dortmund the lead in the 25th minute when he was afforded a free header 10 yards from goal, but his effort lacked power and was comfortable for Oliver Baumann to collect.
Aubameyang was in again four minutes later, running onto Reus' through-ball, but Baumann rushed from his line smother the shot as the hosts stepped it up a gear.
The pressure eventually told in the 35th when Reus gave Dortmund the lead with a scrappy goal.
Baumann parried Sven Bender's long-range drive and Lewandowski's follow-up but the rebound eventually fell to the feet of Reus, who tucked the ball into the empty net from six yards.
Reus went close to a second moments later, fizzing his volley a yard wide of the left-hand post as a half-cleared corner dropped to him on the edge of the box.
Freiburg were dealt a double blow in the final minute of the first period when Diagne was shown a straight red card for hauling down Lewandowski in the box, and Reus stepped up to send the resulting penalty in off the post.
The hosts continued to pour forward after the break and Lewandowski made it three with a moment of real quality in the 58th minute.
The Poland international brought down Reus' lofted pass inside the box, escaped the attentions of two defenders and scooped the ball up and over Baumann for his fifth league goal of the season.
Baumann denied Aubameyang 10 minutes later with a fine save, but there was no let up from the hosts, who made it four in the 70th minute, Lewandowski stretching to convert substitute Jonas Hoffman's cross from the right.
Blaszczykowski added the fifth nine minutes later, taking advantage of some hesitant defending to round Baumann and slot the ball home from a tight angle as Dortmund cruised to victory.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.