There were tears, beers and everything in between on an emotionally charged Matchday 34 to round off the Bundesliga season in some style.
bundesliga.com rounds up the action after the final Matchday of the 2016/17 season...
Philipp Lahm and Xabi Alonso said their goodbyes to the Bayern faithful in typical style: by masterminding a comfortable home win against Freiburg, damaging the UEFA Europa League hopes of Christian Streich's side. Alonso got the ball rolling, setting up Arjen Robben for the first goal inside four minutes. Strikes from Arturo Vidal, Franck Ribery and Joshua Kimmich rendered Nils Petersen's 76th-minute strike mere consolation, but the loudest cheers were reserved for Lahm and Alonso, who left the field to standing ovations and tears in the 87th and 82nd minutes respectively, just before the trophy presentation and customary beer showers.
Watch: Lahm on his "many great memories" at Bayern:
The German word for a match between two sides in a relegation battle is a 'Kellerkrimi,' literally translated as a thriller in the basement. Hamburg started the day 16th, in the relegation play-off spot, two points and a place behind Wolfsburg. Only a win would do for the hosts, while the Wolves needed to avoid defeat; a thriller downstairs indeed. The visitors got off to the perfect start when Robin Knoche headed the opener in the 23rd minute, but Hamburg levelled before the break through Filip Kostic. Wolfsburg opted for a defensive approach in the second half, but were punished at the last: Luca Waldschmidt scored his first Bundesliga goal – on his 21st birthday, no less – in the 87th minute to preserve Hamburg's status as the only founding Bundesliga member never to have been relegated. Wolfsburg will now contest the relegation play-off against the third-place finisher in Bundesliga 2.
Pierre-Emerick Aubameyang scored an 89th-minute penalty, completing a brace and finishing the season as the Bundesliga's top scorer, to fire Dortmund into the UEFA Champions League group stages courtesy of a third-place finish. Bremen made BVB work hard for the victory, however: Zlatko Junuzovic, Fin Bartels and Max Kruse all found the net, but ultimately the class of Marco Reus (who also scored twice) and Aubameyang proved too much.
Watch: Aubameyang reflects on finishing as the league's top scorer
Celebrations took place in Cologne following Saturday's Matchday 34 action: the Billy Goats sealed a spot in the UEFA Europa League – a return to European football after 25 years – courtesy of a 2-0 home win against Mainz. Jonas Hector and Yuya Osako scored the goals minutes before the end of each half, with Hertha Berlin's defeat at home to Bayer Leverkusen confirming a fifth-place finish for Cologne, the club's highest since 1991/92.
Watch: An emotional Anthony Modeste on achieving his aims this season
A heavy home defeat to Leverkusen means that – unless Borussia Dortmund beat Eintracht Frankfurt in next week's DFB Cup final – Hertha Berlin will have to qualify for next season's UEFA Europa League by virtue of finishing sixth. Leverkusen will not be playing on the continental stage next season but showed their class with a thumping victory that included goals from Javier 'Chicharito' Hernandez (a first since February) and a brace for 17-year-old Kai Havertz.
Darmstadt lived the final day of their Bundesliga adventure in exactly the same way they had spent every previous day: by fighting until the last. Marcel Heller's 90th-minute volley proved enough to give the visitors a point – only their fourth away from home all season – in an entertaining encounter. Gladbach, who themselves needed to win to have any hope of Europa League football, twice took the lead through Thorgan Hazard and Raffael, but Sven Schipplock first equalised, before Heller's late intervention.
Another side to leave it late to rescue a point were Frankfurt: Niko Kovac's charges scored twice in the last seven minutes to secure a draw, warming up in fine fashion for next week's DFB Cup final against Borussia Dortmund. Marcel Sabitzer and Yussuf Poulsen had put the Easterners in cruise control, but Jesus Vallejo and Danny Blum struck late as Kovac's troops ended the regular season on a high.
Hoffenheim missed the chance to put pressure on third-place Borussia Dortmund after being held to a goalless draw by Augsburg, who knew that a point would secure survival. The stalemate means that Hoffenheim finish fourth and could face a tricky tie to qualify for next season's UEFA Champions League group stage, while Die Fuggerstädter's season ended on a high with a run of four unbeaten games.
Klaas-Jan Huntelaar bade farewell to the Bundesliga at Ingolstadt's Audi Sportpark. Markus Weinzierl brought the Dutchman on in the closing stages of the draw, by which point first-half goals from Donis Avdijaj and Pascal Groß had already settled matters. Schalke will be back next season, albeit without Huntelaar, while Ingolstadt's relegation had been confirmed last week, although Die Schanzer still managed to give their fans a fine send-off.
Make sure you cast your vote for the Bundesliga Team of the Season!