Hoffenheim captain Sebastian Rudy gave his side a deserved first-half lead in Dortmund before being sent off and the hosts were just ten minutes from their first home defeat of the season.
The game turned when Rudy was shown a straight red card – on his 26th birthday – for bringing down Aubameyang, who was through on goal, on 58 minutes.
Winger Henrikh Mkhitaryan spared Dortmund’s blushes with an 80th-minute equaliser before substitute Adrian Ramos headed Lukasz Piszczek’s cross home on 85 minutes.
Mkhitaryan then laid on the third when he sprinted clear, drew Hoffenheim keeper Oliver Baumann and passed for Aubameyang to tap home in the second minute of stoppage time.
It was the 22nd goal of the season for the Gabon striker, who is one behind the league's top scorer, Bayern Munich's Robert Lewandowski.
“We started very well, but then we we lost our way,” said Dortmund coach Thomas Tuchel.
“We invested a lot in the win, so it’s a super nice and super important victory.”
The win allows second-placed Dortmund to trim Bayern’s lead at the top of the table to eight points before next Saturday’s top of the table clash against Pep Guardiola’s Bavarian side in Dortmund.
Hoffenheim remain second from bottom and four points from safety.
Borussia Monchengladbach went fourth after a fightback earned a 2-2 draw at Augsburg.
Brazilian striker Raffael had sent Gladbach into a half-time lead before the game exploded into life with three goals in five second-half minutes.
Despite their midweek Europa League exit at the hands of Liverpool, Augsburg, who are 13th, roared back with two goals in quick succession.
Iceland striker Alfred Finnbogason thumped a header home on 50 minutes, his first goal since joining from Olympiakos, before Brazil winger Caiuby slotted neatly home just three minutes later.
Gladbach’s American winger Fabian Johnson gave the perfect response as he smashed home his shot on 55 minutes to make it 2-2.
The visitors should have won as Sweden’s Oscar Wendt fired wide late on while only a Marwin Hitz save denied Dortmund captain Granit Xhaka.
Mainz warmed up for Wednesday's league game at Bayern by going fifth with a 3-1 win at home to Bayer Leverkusen, who had coach Roger Schmidt in the stands as he starts a three-match ban.
Mainz’s Yunus Malli and Jhon Cordoba netted first half goals, then Malli netted a second-half penalty, before Javier Hernandez pulled a goal back.
Schalke drop to seventh after their goalless draw at Eintracht Frankfurt on Sunday night.
On Saturday, Bayern continued their seemingly unstoppable march to an historic fourth consecutive league title with a 2-0 win at Wolfsburg.
Guardiola’s outfit now have 62 points out of a possible 69, their tally exactly double that of Wolfsburg, who are eighth.
A tight struggle was settled by second-half goals from Kingsley Coman and Lewandowski, who netted his 33rd goal in all competitions.
Elsewhere, bottom side Hannover gained ground in the relegation battle with a shock 2-1 win at Stuttgart after an eight-match losing streak.
Japan midfielder Hiroshi Kiyotake capped his first start since November after injury by setting up both goals for defender Christian Schulz.
It means just four points separate the bottom three sides, but Hannover remain five points from safety.
Hamburg drew 1-1 at home to Ingolstadt while Werder Bremen are deep in the relegation battle despite their 2-2 draw at home to Darmstadt.
On Friday, Hertha Berlin strengthened their grip on third place with a 1-0 victory at Cologne as Vedad Ibisevic scored the winner to break their run of six games without a win.
Follow us on Twitter @NatSportUAE
Like us on Facebook at facebook.com/TheNationalSport