Hoffman came off the bench during the second half and opened the scoring with just 15 minutes remaining. The 21-year-old then won his side a late penalty before newly promoted Braunschweig scored a consolation goal moments before the full-time whistle.
The hosts gave league debuts to Henrikh Mkhitaryan, Jakub Blaszczykowski and Sokratis Papastathopoulos but struggled against the Bundesliga minnows in the opening half.
Hoffman was introduced during the second period and opened the scoring from a tight angle after a smart exchange with defender Mats Hummels.
And with just four minutes remaining, the youngster was involved again as he was tripped in the penalty area. Marco Reus was the man to convert from 12 yards.
Robert Lewandowski deflected Kevin Kratz’s header into his own net with two minutes to play to give the visitors hope, but it wasn’t to be as Dortmund claimed their second consecutive league victory.
In the day’s other game, Hiroshi Kiyotake struck a late free kick to salvage a point for Nuremberg as they drew 2-2 with Hertha Berlin.
Nuremberg made the breakthrough five minutes before half time when Daniel Ginczek won possession and threaded the ball through for Josip Drmic to stroke past Hertha goalkeeper Thomas Kraft.
Hertha, who started their campaign with a 6-1 demolition of Eintracht Frankfurt last week, looked set to make it six points from their opening two games when they turned the game around after halftime.
They levelled just after the hour when a Sami Allagui shot took a wicked deflection off the helpess Berkay Dabanli before substitute Ronny converted a penalty, awarded for a foul by Javier Pinola on Alexander Baujohann, with 11 minutes left.
The decision brought angry Nuremberg protests as they claimed Pinola had played the ball, but those were forgotten when Kiyotake's brilliant effort gave Nuremberg their second consecutive draw of the campaign.