The Gabon forward struck after half an hour and then cancelled out a 54th-minute equaliser from Benjamin Kessel to earn Jurgen Klopp's men all three points for the first time since November.
Their failure to add a third almost came back to haunt them, but goalkeeper Roman Weidenfeller was relieved to clutch the ball in his arms as Ermin Bicakcic's last-minute header came back off the inside of a post.
Dortmund welcomed key defender Mats Hummels back for his first appearance in two months, but his first touch of the ball only served to make a Jan Hochscheidt shot more difficult for Weidenfeller to save.
Braunschweig took the game to their visitors and caused numerous problems early on, Kessel going closer with a header from six yards out.
Dortmund finally tested Daniel Davari with a Nuri Sahin free-kick which the Braunschweig goalkeeper kept out as he himself landed in the back of the net.
Just three minutes later, though, Dortmund took the lead.
Robert Lewandowski exchanged passes with Marco Reus and lifted the ball into the centre, where Aubameyang was unmarked to nod the ball over the line from a yard out.
Braunschweig responded well and levelled just 10 minutes into the second half when Kessel was left free at the near post to turn in a corner.
Dortmund regained the lead when Aubameyang was found in space by Reus and sent a diagonal shot past Davari.
Reus had a free-kick turned on to the bar and Henrikh Mkhitaryan struck a shot against a post as Dortmund tried to add a third, and they were nearly made to pay when Bicakcic headed against a post with almost the last touch of the game.