Match ends, Borussia Dortmund 3, SV Werder Bremen 2.
Borussia Dortmund secured a place in the Europa League with a victory over Werder Bremen in Jurgen Klopp's final home game in charge.
Klopp, 47, announced he would leave the Bundesliga club last month and his last game in charge will be next weekend's German Cup final with Wolfsburg.
Shinji Kagawa and Pierre-Emerick Aubameyang put Dortmund two up but Levin Oztunali pulled one back.
Henrikh Mkhitaryan made it 3-1 before Theodor Gebre Selassie's late goal.
With Wolfsburg having already qualified for the Champions League, Dortmund's seventh-placed finish means they have secured the Europa League spot awarded for the German Cup irrespective of whether they win or lose in the final.
Elsewhere, Augsburg also confirmed their place in the Europa League with a 3-1 win at Borussia Monchengladbach, while Bundesliga runners-up Wolfsburg played out a 2-2 draw with Cologne.
Third-placed Bayer Leverkusen ended their season with a 2-1 defeat at Eintracht Frankfurt as Hoffenheim finished ninth after a 2-1 win over Hertha Berlin.
- 5KehlSubstituted forBenderat 86'minutes
- 7KagawaSubstituted forJojicat 81'minutes
- 11ReusSubstituted forImmobileat 74'minutes
- 23Gebre Selassie
- 37SternbergSubstituted forPrödlat 87'minutes
- 18KroosSubstituted forMakiadiat 75'minutes
- 38BuschSubstituted forLorenzenat 61'minutes
- 9Di Santo
- 26von Haacke
- Manuel Gräfe
- Shots on Target
Second Half ends, Borussia Dortmund 3, SV Werder Bremen 2.
Corner, Borussia Dortmund. Conceded by Cedrick Makiadi.
Attempt blocked. Ciro Immobile (Borussia Dortmund) right footed shot from the left side of the box is blocked. Assisted by Pierre-Emerick Aubameyang.
Substitution, SV Werder Bremen. Sebastian Prödl replaces Janek Sternberg.
Substitution, Borussia Dortmund. Sven Bender replaces Sebastian Kehl.
Goal! Borussia Dortmund 3, SV Werder Bremen 2. Theodor Gebre Selassie (SV Werder Bremen) right footed shot from the centre of the box to the top left corner. Assisted by Zlatko Junuzovic following a set piece situation.
Foul by Neven Subotic (Borussia Dortmund).
Melvyn Lorenzen (SV Werder Bremen) wins a free kick on the left wing.
Substitution, Borussia Dortmund. Milos Jojic replaces Shinji Kagawa.
Corner, Borussia Dortmund. Conceded by Assani Lukimya.
Offside, SV Werder Bremen. Franco Di Santo tries a through ball, but Franco Di Santo is caught offside.
Foul by Marcel Schmelzer (Borussia Dortmund).
Fin Bartels (SV Werder Bremen) wins a free kick on the right wing.
Attempt missed. Pierre-Emerick Aubameyang (Borussia Dortmund) right footed shot from outside the box is too high. Assisted by Sebastian Kehl.
Attempt blocked. Ciro Immobile (Borussia Dortmund) right footed shot from the right side of the box is blocked. Assisted by Henrikh Mkhitaryan.
Substitution, SV Werder Bremen. Cedrick Makiadi replaces Felix Kroos.
Foul by Mats Hummels (Borussia Dortmund).
Melvyn Lorenzen (SV Werder Bremen) wins a free kick in the attacking half.
Substitution, Borussia Dortmund. Ciro Immobile replaces Marco Reus.