The champions inflicted relegation on Eintracht Frankfurt with a 3-1 win with Lucas Barrios grabbing a double
A double from Lucas Barrios and a Marco Russ own goal cancelled out Sebastian Rode's opener in an eventful game which also saw the home team miss two penalties.
Christoph Daum's men needed victory to stand a chance of preserving their Bundesliga status but could not hold a lead against Dortmund, who finish the season seven points clear at the summit of the league.
BVB started the game in promising fashion and could have taken the lead on 12 minutes when they were awarded a penalty. However Lucas Barrios' spotkick was saved by Ralf Fahrmann.
The home team continued to dominate the first half but found themselves a goal down a minute into the second period when Sebastian Rode's header from Theofanis Gekas' cross found the back of the net.
However, the champions levelled the scoring on 68 minutes when Barrios made up for his missed penalty effort with a goal, sweeping the ball home following an assist from Lukasz Piszczek.
Four minutes later Jurgen Klopp's men took the lead when Marco Russ agonisingly put the ball into his own net.
Things got even worse for the away team when Marcel Titsch-Rivero was shown a red card on 80 minutes for bringing down Marcel Schmelzer in the box.
Dede, a second-half substitute was given the opportunity to end his Borussia career on a high but amazingly, Fahrmann saved his second penalty of the game to give his side slender hope.
However, Barrios wrapped up the win with a 90th minute goal to condemn Frankfurt to the second tier of German football. Dortmund, meanwhile, failed to match Bayern Munich's record of conceding just 21 goals in a season.