The result means that Hoffenheim finished third in the table, while Dortmund finished fourth which means they also qualify for the Champions League despite the defeat.
The day started well for the hosts when Andrej Kramarić fired them into a half-time lead. Dortmund though showed their fight in the second half and through Marcos Reus, they equalised before the hour mark.
The hosts though responded to that set back brilliantly and goals from Ádám Szalai and Pavel Kadeřábek sealed the win for the hosts which means a whole lot to the city as they now get ready for Champions League football next season.
Baumann denied Guerreiro on two occasions from giving Dortmund a perfect start
After an even start to the game without any clear cut openings, Dortmund went close on a couple of times in quick succession to taking the lead in the game.
On both occasions though, Raphaël Guerreiro saw his goalbound shots well-saved by Oliver Baumann, who had to be on his toes to keep his side on level terms.
That seemed to bring the home side to life as Kramarić tested Roman Bürki from the edge of the area with a goalbound effort a few minutes later.
Kramarić punished Bürki's mistake to fire the hosts into the lead
The pressure began to build on the visitors and that led to the opening goal of the game as good closing down from Mark Uth forced Bürki into a mistake when he kicked the ball straight to Kramarić, who took a couple of touches before firing the ball into the back of the net from the edge of the area.
Schürrle missed a golden chance before the break to level proceedings
Dortmund therefore needed to respond to going behind and they really should have equalised when a great through ball from Julien Weigl saw André Schürrle in on goal with the goal at his mercy, but the striker somehow put his shot wide of the goal when he really should have scored.
The remainder of the half was quite scrappy as the Dortmund players tried to take control of the game to find an equaliser but at the break it was the home side who held the advantage and they would have been hoping for more of the same in the second half.
Hosts undone by a Reus' equaliser before the hour mark
The hosts came out on the front foot at the start of the second half and they almost doubled their lead within the first five minutes when a great run and pass from Kadeřábek found Szalai in the box but he saw his shot well-saved by the legs off Burki.
They continued to be on the front foot until out of nothing, the visitors equalised with their first attack of the second half.
The goal was created by Guerreiro, who passed the ball behind Reus, who took a sublime touch in the box, before slotting the ball into the back of the net.
Szalai put the hosts back into the lead five minutes after going behind
That goal meant that the hosts were going to miss out on the Champions League if they didn't respond but they did just that five minutes later by taking the lead in the match once again.
It came after a great passing move which ended with Uth playing the ball through to Szalai, who chipped the ball over Burki to put his side back in the lead.
Kaderabek added a third for the hosts as they sealed Champions League football next season
After that goal, the hosts really took the game to the visitors and that gave them a reward of a third goal when a free-kick was whipped into the box caused the visitors all sorts of problems, and Kaderabek fired the ball home after Ermin Bičakčić saw his header cleared off the line.
It left Dortmund with a real mountain to climb to get back into the game and they failed to do so as the hosts sat back and defended well to see out the game which means they have qualified for the Champions League outright next season which is a huge achievement for the club.