Borussia Dortmund are still waiting to secure Champions League football after a 2-1 loss at home to relegation-battling Mainz that secured a second-place finish in the Bundesliga for local rivals Schalke.
Early goals from Bote Baku and Yoshinori Muto had Mainz 2-0 up within 13 minutes at the Westfalenstadion. Maximillian Philipp reduced the deficit on 16 minutes, but Dortmund were unable to claim an equaliser.
The win ensures Mainz's top-flight status for next season, as they are now six points clear above 16th-placed Wolfsburg.
There were emotional scenes before the match as Roman Weidenfeller, the veteran goalkeeper for the back-to-back Bundesliga title wins of 2010-11 and 2011-12 and the run to the 2013 Champions League final, bid farewell to the club's fans on what was his final home match for them.
The 37-year-old was only named on the bench, and looked on as No. 1 Roman Burki conceded in the fourth minute and again nine minutes later when Mainz's top scorer Muto netted his eighth league goal of the season.
Philipp then ensured a quick response with his third goal in his last five games. However, Dortmund's failure to mount a comeback, coupled with Schalke's 2-1 win at Augsburg, means Peter Stoger's side travel to Hoffenheim for their final match of the season knowing a draw will confirm their place in the Champions League next season.