Borussia Dortmund were unable to recover after falling two goals behind against Mainz on Saturday, with the Carnival Club securing a deserved 2-1 victory in Roman Weidenfeller's last ever home game for the Black and Yellows - although the veteran goalkeeper remained an unused substitute.
Hopes were high ahead of the match but early strikes from Ridle Baku and Yoshinori Mutō saw Dortmund facing an uphill battle just 10 minutes into the match.
The hosts' makeshift striker Maxi Philipp attempted to be the catalyst for a Borussia Dortmund comeback by quickly grabbing a goal of his own, but the Westphalian side were unable to make their momentum count and were left empty-handed on the Bundesliga's penultimate matchday.
Victory for Mainz has all but confirmed their Bundesliga status for another year, while Hoffenheim's defeat on the road to Stuttgart has kept Dortmund in the automatic qualification places for next season's Champions League.
Mainz needed just four minutes to take a shock lead at the Westfalenstadion, with 20-year-old midfielder Ridle Baku continuing his goalscoring form to fire the Carnival Club in front after a slick passing move.
Yoshinori Mutō then increased Mainz's lead even further with barely 10 minutes on the clock. Pablo de Blasis floated a teasing cross into the penalty area and Roman Bürki was left stranded when the visitors' striker got to the ball first, glancing a header past the helpless Swiss shot-stopper.
But Borussia Dortmund were back in the game seconds later when Maxi Philipp combined with Jadon Sancho before firing the ball into the bottom corner of Florian Müller's goal.
Alexander Hack came close with a long-range effort as the visitors looked to restore their two-goal advantage, while de Blasis - who stands at 5' 4'' - hit the side netting with a looping header in what proved to be the last chance of the first half.
De Blasis popped up with another header shortly after the restart but the 30-year-old was once again off target with his effort, while Marco Reus' goal-bound strike was well dealt with by the Mainz defence.
Both sides saw half-hearted penalty appeals waved away as Dortmund pressed for an equalising goal, with the visitors looking to find their joy through infrequent counter attacks.
Borussia Dortmund grew increasingly frustrated as the match went on despite controlling possession, as well as keeping the ball in and around the Mainz penalty area, with clear-cut chances coming few and far between.
Florian Müller remained largely untroubled in the closing stages of the match and Mainz deservedly held on for all three points, with Marcel Schmelzer's tame last-gasp header the closest Dortmund came to finding an equaliser.