Bayern Munich are Bundesliga champions for the seventh season in a row, after being pushed all the way by a swashbuckling Borussia Dortmund side.
bundesliga.com details the key moments that decided the title race in the record champions' favour...
1) The wake-up calls
Bayern looked like they might romp to the title after kicking off the campaign with four successive wins, but a late summer-early autumn sticky patch put the kibosh on such thinking. Niko Kovac's men were held at home by Augsburg before suffering back-to-back defeats to Hertha Berlin and Borussia Mönchengladbach. Wins over Mainz and Wolfsburg proved something of a false down as the defending champions fell eight points behind leaders Dortmund on the back of a 1-1 draw with Freiburg, 3-2 Klassiker defeat to BVB and 3-3 stalemate with Fortuna Düsseldorf. It was the wake-up call they needed.
Bayern reeled off six successive wins, negotiating tricky year-ending encounters with Eintracht Frankfurt and RB Leipzig, before scoring seven goals and conceding just two in encouraging victories against Hoffenheim and VfB Stuttgart in early 2019. A chastening 3-1 loss at Bayer Leverkusen served as a timely reminder that there was still work to be done but, like all aspiring A-grade students, the Bavarians duly knuckled down. Bayern won nine of their next 10, plundering 35 goals along the way, to turn a dangerously insurmountable deficit on Dortmund into a one-point lead by Matchday 31.
Watch: How Bayern pick defences apart
2) The Klassiker rout
The pick of the bunch was the 5-0 drubbing of Dortmund on Matchday 28. Bayern had been found wanting in the reverse fixture, losing 3-2 despite twice taking the lead at the Signal Iduna Park, but they did not hang about when it came to redressing the balance.
Goals from Mats Hummels, Robert Lewandowski, Javi Martinez and Serge Gnabry effectively ended the game as a contest before half-time. Lewandowski made it five towards the end of a second period of damage limitation on Dortmund's part in what, aesthetically, was Bayern's most convincing display of the season.
Psychologically, it changed the complexion of the title race. Bayern were back in charge of their own destiny - a point clear and 14 goals better off than Dortmund - with only six rounds of fixtures left to play. For BVB, there would be no way back.
Watch: Highlights of Bayern's five-star show of muscle in Der Klassiker
3) The banana skins
That's not to say Dortmund didn't have chances to close the gap. After both sides won on Matchdays 29 and 30, BVB had the perfect opportunity to reclaim top spot, playing as they were 24 hours before Bayern. Facing a Schalke team in free fall, it was one edition of the Revierderby that had home banker written all over it - but nerves got the better of the Black-Yellows as they ended the game with nine men, losing 4-2.
Bayern fared only marginally better in their 1-1 draw with Nuremberg a day later, but dug even deeper into their stash of collective resolve to see off rock-bottom Hannover the following weekend. Dortmund, despite taking a 2-0 lead in the late kick-off, could only draw with top-six contenders Werder Bremen. The masters of the pressure cooker had done it again. Well, almost...
4) The title-clincher(s)
With a four-point lead on Dortmund, a vastly superior goal difference going into the penultimate weekend, Bayern knew victory at third-placed Leipizig would seal the deal. Die Roten Bullen already had UEFA Champions League qualification in the bag, but still harboured an outside shot at claiming the runners-up spot. They also had a 15-match unbeaten run to protect, and there was the little matter of landing a few heavy blows ahead of their DFB Cup final meeting with Bayern on 25 May. Make no mistake, the match registered 10 on the potential title pitfall scale - but then so did Der Klassiker II.
Bayern bossed proceedings in Leipzig, but couldn't find a way through - though Leon Goretzka had an audacious scissor-kick ruled out for offside. That 0-0 draw, coupled with Dortmund's 3-2 win over Fortuna Düsseldorf, cut Bayern's lead to two points and ensured the title race would run into the final day.
Despite only needing a draw against an Eintracht Frankfurt outfit chasing European football, Bayern played like their lives depended on it. Kingsley Coman opened the scoring inside four minutes, and a procession of chances followed in a rampant first-half display. Sebastien Haller levelled against the run of play soon after the restart, but Bayern were not to be derailed. Four second-half strikes - including one each from departing legends Franck Ribery and Arjen Robben - rubber-stamped their seventh Bundesliga title in a row, 28th overall and possibly their sweetest yet.
5) The Müller comeback
Thomas Müller was instrumental to the turnaround. He didn't play the most games, top the scoring charts or chime in with the highest number of assists, but he did play his own inimitable part in delivering the goods - particularly at the business end.
Between Matchdays 24 and 32, Müller started seven of Bayern's nine league assignments, producing two goals and four assists. In the two games he dropped to the bench, the Reds were held by lowly Freiburg and Nuremberg. It was only natural that Kovac should reinstate the self-styled Raumdeuter with the title up for grabs in Leipzig and then Frankfurt.
Müller didn't disappoint. It was his pass that played in Coman for the opening goal against Frankfurt as Bayern hit top gear when they needed to most, rendering Dortmund's win in Mönchengladbach academic. Mr. Bayern had done it again.
An eighth career Bundesliga title is just reward for a player of Müller's many talents, and you certainly wouldn't bet against him making it a domestic double in the cup.