Both sides opted to make three changes from their midweek outings. For Thomas Tuchel, he brought Emre Mor, Gonzalo Castro and Matthias Ginter into the starting eleven for Guerreiro, Christian Pulisic and Marc Bartra following their 5-1 win over VfL Wolfsburg.
For Christian Streich and Freiburg, they maintained their 100% home record with a slender 1-0 triumph against Hamburger SV. From that game Mike Frantz, Pascal Stenzel and Florian Niederlecher were benched as Caglar Söyüncü, Aleksandar Ignjovski and Nils Petersen earned starting berths.
Aubameyang strikes late to give BVB the lead
Freiburg began the better side and were close to opening the lead when Vincenzo Grifo was played in on goal by a neat flick but his finish was weak and easily gathered by Roman Bürki. Moments before, Petersen had a volleyed effort deflected over as Streich's side showed they were not afraid to put the BVB defence under pressure.
After the sluggish start, the hosts kicked into gear with Ousmane Dembele causing all sorts of trouble. Instead, though, it was Ginter who threaded through Aubameyang for Dortmund's first big chance of the game only for his chip to fall agonisingly wide. Mor was also a handful; the youngster had two deflected efforts go just wide and hit the bar.
Piszczek also went close with an effort from outside the area, as did Marcel Schmelzer in a period of true Dortmund dominance. However Freiburg eventually steadied and almost took the lead through Petersen but Bürki was up to the task and eventually gathered his powerful, low shot at the second time of asking.
The good and the bad of Dembele was on show in the first half as the youngster sarcastically applauded Christian Dingert for a harsh yellow card but was perhaps fortunate not to see red. The Frenchman responded in style and gathered the ball in the box before producing a turn of pace and a cross that was turned in by Aubameyang on half-time.
BVB turn on the style after the break, despite Philipp's strike
Dembele didn't let up after the break and forced a fine save from Alexander Schwolow after some superb skill, but there was better to come moments later for the hosts.
After starting the move inside the Freiburg half, Piszczek was there to finish and continue his unlikely glut of goals of late. He drove towards the visiting defence before sliding in Castro, only he saw his cross blocked by Söyüncü. Unfortunately for the defender, his rebound fell straight to Piszczek and he finished well in a crowded box to double the lead.
Streich responded and brought on Georg Neidermeier and Janik Haberer for Manuel Gulde and Petersen, respectively; the change worked a treat. A high ball in the air wasn't met by any yellow shirts, as Haberer showed great composure to bring it under control and slide in Maximilian Philipp. Faced with Bürki, he slotted home coolly.
It was all Dortmund from then on in and they could easily have added to their lead. Niedermeier's header back was palmed out by Schwolow and Aubameyang struck the post before an incredible flick - a-la-Dennis Bergkamp - saw him turn the veteran defender before putting the ball wide with his left foot.
There would be one final goal and a superb team build up was finished off just as well by Raphael Guerreiro, who is also thriving at the Westfalenstadion. Dortmund go back to the top of the table, albeit temporarily on goal difference, while Freiburg remain in ninth ahead of the rest of this weekend's games.