The winning goal for the home side came in the 89th minute when Naby Keita put the ball into the roof of the net after a great cross from Oliver Burke.
Thomas Tuchel's side just couldn't get going during the game and now are three points behind Bayern Munich already after just two games and will want to recover quickly.
Both teams evenly matched in the first half
Both teams started the game very well and each had a couple of half-chances but were unable to put the ball into the net. The newly promoted team were holding their own by letting the visitors have plenty of the ball and then when the move broke down they counter-attacked with the pace they have up front.
It worked to a certain point for the hosts but their final ball was the only thing that was lacking.
The first decent chance of the game though went the way of the visitors after a neat passing move between Sebastian Rode and Marcel Schmelzer found André Schürrle on the edge of the box. The winger hit a lovely curling shot which just went wide of the post with the goalkeeper beaten.
Frustration for the Dortmund players
Apart from the Schürrle chance though Dortmund really struggled to create clear-cut chances for their talented frontline and the frustration started to show as some players started to throw their arms up in the air wondering what they had to do to break down a stubborn defence.
For the home side though they also had a couple of nearly moments from crosses near the end of the half and on another day they could have put one of them away as they more than matched the visitors.
The second half began where the first half left off as the visitors really struggled to get anything from a very stubborn home defence who were determined to show their counterparts that they were not there just to make up the numbers.
As well as being strong at the back the home side kept on going forward in numbers but every time they had an opening they were also stopped in their tracks.
As Dortmund continued to push forward, the hosts created their best chance on the break when Timo Werner was played through one on one against the defence and unleashed a powerful effort which Roman Bürki had to do well to keep out with a good save.
Not long after that chance, the visitors should have taken the lead when Schürrle was played through on goal one on one with the goalkeeper but his rising shot hit the crossbar and went over the bar.
Keita scores winner to give the home side an unbelievable victory
This chance would be costly as the spirited hosts took the lead in the 89th minute when a brilliant cross from the debutant Burke found Keita unmarked in the six-yard box and he smashed the ball into the roof of the net. The home side deserved the lead after how well they played all night.
The goal came that late in the game, Dortmund were unable to hit back and they went down to defeat in a game they just couldn't get going in.