Dortmund came into the match heavily favoured to win and reclaim their place on top of the table but struggled to match Union's enthusiasm in sweltering conditions in the German capital.
Union were 1-0 up in the 22nd minute, with Marius Buelter scoring the side's first ever top-flight goal at home.
Buelter latched onto a corner which had been struck low and fast, hammering the ball into the bottom right of the net.
The goal stung Dortmund into action, who equalised just two minutes later through Paco Alcacer.
Dortmund coasted through the remainder of the first half, dominating possession and territory as they went in search of what seemed like an inevitable second.
Bayern hope Coutinho arrival will spark season
It was Union who would score next however, with Buelter grabbing a second by pouncing on a desperate clearance from Dortmund keeper Roman Buerki. Sebastian Andersson added another on the 75th minute to put the home side 3-1 up to claim their first ever win in the top division.
Bayern Munich new boy Ivan Perisic bagged his first goal for the champions as they romped to a 6-1 win over a hapless Mainz at the Allianz Arena.
Bayern showcased their attacking brilliance throughout, with six different players getting on the scoresheet.
Robert Lewandowski scored his sixth of the season in just three games, while Benjamin Pavard, David Alaba, Kingsley Coman and Alphonso Davies also scored.
Mainz took a shock early lead when Jean-Paul Boetius finished a superb sixth-minute counter attack, giving the visitors hope that they might be able to pick up their first point of the season.
However Pavard equalised for the hosts half an hour later through an expertly taken volley which recalled his stunning 2018 World Cup strike against Argentina.
Alaba gave Bayern the lead with a brilliantly taken free kick just before the break, and the rout was completed in the second half.
The win sees Bayern move up the table to joint-second, behind leaders RB Leipzig whose 3-1 win over Borussia Moenchengladbach on Friday means they have won three out of three.
Sancho inspires Dortmund comeback against Cologne
In Freiburg, Cologne's Ellyes Skhiri scored the winner in second-half injury time to secure the visitors a 2-1 victory.
Freiburg claimed the advantage in the 40th minute through an own goal by Rafael Czichos, before Cologne fan favourite Anthony Modeste equalised in the 52nd minute.
Schalke picked up their first win of the season over a disappointing Hertha Berlin at Gelsenkirchen's Veltins Arena.
Berlin scored own goals either side of half-time through Niklas Stark and Karim Rekik.
English defender Jonjoe Kenny added a third in the 86th minute to make it 3-0 -- the first goal by a Schalke player this season -- to put the game beyond doubt.
Wolfsburg and Paderborn fought out a firey 1-1 draw at the Volkswagen Arena.
Newly-promoted Paderborn went ahead through Cauly Souza in the 12th minute, before Josip Brekalo equalised in the 56th minute.
At the BayArena, visitors Hoffenheim ended Bayer Leverkusen's 100 per cent start to the season as the sides fought out a 0-0 draw.
The visitors had to endure a six-minute spell of injury time but held firm against a luckless Leverkusen attack.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ