Hertha Berlin 3-2 Borussia Dortmund
Borussia Dortmund will end the year nine points behind Bundesliga leaders Bayern Munich after suffering defeat at Hertha Berlin.
Dortmund were without the suspended Jude Bellingham, but Erling Haaland was on hand to lead the attack.
Julian Brandt gave Dortmund the lead after 31 minutes, but the hosts hit back in the second half through Ishak Belfodil and a brace from Marco Richter.
Steffen Tigges did pull a goal back in the 83rd minute but Hertha were able to hold on for the win.
RB Leipzig 0-2 Arminia Bielefeld
RB Leipzig's struggles in the Bundesliga continued after suffering a 2-0 loss to Arminia Bielefeld.
Both goals arrived in the second half, with Janni Luca Serra finding the back of the net on 57 minutes before Masaya Okugawa sealed the win in the 75th minute.
Eintracht Frankfurt 1-0 Mainz
Eintracht Frankfurt ended the year on a high as Jesper Lindstrom's first-half strike was enough to secure a 1-0 win over Mainz on Saturday afternoon.
Hoffenheim 1-1 Borussia Monchengladbach
Hoffenheim struck late in the second half to secure a point against Borussia Monchengladbach at the PreZero Arena.
Gladbach looked to have secured the win thanks to Bree Embolo's 35th minute strike, but Kevin Akpoguma popped up with the equaliser for Hoffenheim in second-half stoppage time.
Bochum 0-1 Union Berlin
Max Kruse's solitary strike helped Union Berlin to a 1-0 win over Bochum in their final Bundesliga clash of the year.
Greuther Furth 0-0 Augsburg
Greuther Furth and Augsburg could not be separated after playing to a goalless draw at Sportpark Ronhof Thomas Sommer on Saturday evening.
Here are the 10 richest footballers in the world this season, as revealed by Forbes: