Borussia Mönchengladbach staked their claim for a UEFA Champions League berth next season with an entertaining victory over TSG 1899 Hoffenheim on Sunday, while Eintracht Frankfurt's victory over 1. FSV Mainz 05 kept their hopes of staying up alive - and simultaneously relegated Hannover 96.
Recap bundesliga.com 's live coverage of the Matchday 31 action as it happened...
20:05 - That's a wrap
What a day! That concludes our live coverage of the weekend's action, thanks very much for joining us. There are sure to be plenty of thrills and spills on Matchday 32 as well, so don't miss out next week!
19:51 - Hannover relegated
Frankfurt's win had repercussions for bottom club Hannover, however: the 96ers have been relegated. The club reacted to the news solemnly on Twitter, commenting: "It's official: Eintracht Frankfurt's win means we'll be playing in Bundesliga 2 next season."
19:40 - Rollercoaster ride
Frankfurt's 2-1 win against Mainz - their first victory since Matchday 27 - has reshuffled the pack once more at the bottom of the Bundesliga table. The Eagles are now on 30 points, just three behind VfB Stuttgart in the nearest non-relegation place. The battle to avoid the drop is set to go right down to the wire!
FULL TIME - FRANKFURT 2-1 MAINZ
A crucial win for Niko Kovac's Eintracht Frankfurt, thanks to Stefan Bell's unfortunate late own-goal. They are now just a point behind the relegation play-off berth heading into the final three games of the season, and on top of that - they win local pride too.
84' FRANKFURT 2-1 MAINZ
Ben-Hatira is the man celebrating, but a huge deflection helped the ball loop in for what could be a crucial goal in the entire relegation battle in the Bundesliga. It's only his second of the season, but how valuable that could prove to be, even if perhaps he did not intend it as a shot.
74' FRANKFURT 1-1 MAINZ
Jhon Cordoba was already on his final warning, but he has not heeded it - another flashpoint there and, after some consultation with his assistants, the referee has chosen not to take any action, much to the home fans' dismay. Still 11 vs 11, but the nerves are starting to come to the surface with the stakes so high.
68' FRANKFURT 1-1 MAINZ
Anything Hradecky can do, Karius can do better. Seferovic looked odds on to put Frankfurt in front, but the last line of the Mainz defence is once again insurmountable.
66' FRANKFURT 1-1 MAINZ
Cordoba is in around the back and this could be the chance for Mainz, but Hradecky makes an excellent save, standing his ground well faced with the Colombian.
60' FRANKFURT 1-1 MAINZ
Cordoba is the next name to go into the referee's notebook, and while it is only a yellow card, there are plenty of Frankfurt fans calling for red. With so many players already booked, each foul is going to be scrutinised with that red card currently remaining in the referee's top pocket.
We are underway in the second game today, and the final fixture of this Matchday 31 - Eintracht Frankfurt vs 1. FSV Mainz 05.
FULL TIME GLADBACH 3-1 HOFFENHEIM
Gladbach are right up there in the hunt for a place in the UEFA Champions League next season, just a point now behind fourth-placed Hertha Berlin. That looks to be a battle which will go down to the wire, with the Foals travelling to Bayern next weekend. Hoffenheim's first defeat under Julian Nagelsmann means they still have some work to do to maintain their Bundesliga status, with just three points keeping them above the relegation play-off berth.
90+1' GLADBACH 3-1 HOFFENHEIM
Hofmann has the chance to round things off for the Foals, but he drills his shot into the side-netting with Andre Schubert holding his head in his hands. Despair soon turns to joy, though, as the final whistle sounds and Gladbach have won.
66' GLADBACH 3-1 HOFFENHEIM
Another of those trademark breaks has Hahn once again bearing down on Baumann's goal. He chooses to tee up Traore this time, but his shot is blocked behind for a corner.
We'll say that's one and a half goals for André today, then. 😉 lt;a href="https://twitter.com/hashtag/fohlenelf?src=hash">#fohlenelf
— Gladbach (@borussia_en)
59' GLADBACH 2-1 HOFFENHEIM
A header from Christensen makes Baumann stretch that little bit more, but with the same result - it is another save.
58' GLADBACH 2-1 HOFFENHEIM
Somehow it does not seem like we have seen the last of the scoring here. Oscar Wendt has a chance to restore Gladbach's two-goal lead, but he plays his shot straight into the arms of Bauman, who is relieved not to have to break a sweat to keep that one out.
54' GOAL! GLADBACH 2-1 HOFFENHEIM
It's game on at Borussia-Park. Who else but Kramaric was unmarked in the middle to beat Sommer and reduce the arrears? The last time Hoffenheim came back from two goals behind to win was seven years ago, and you've guessed it - it was against Gladbach!
51' GLADBACH 2-0 HOFFENHEIM
Traore pulls the trigger, but Baumann is equal to his effort, tipping it over the crossbar.
16:35 - Line-ups
Here are the teams for the Rhine-Main derby, coming up in just under an hour.
46' GLADBACH 2-0 HOFFENHEIM
Hahn does have the ball in the back of the net after just 30 seconds of the second half, but the linesman's flag had been raised long before he hit the target - Oliver Baumann in the Hoffenheim goal did not even make an attempt to save.
Gladbach lead by two goals to nil with 45 minutes remaining for Hoffenheim to preserve their unbeaten record under Julian Nagelsmann.
21' GLADBACH 1-0 HOFFENHEIM
There's the chance for the equaliser! Mark Uth has time and space at the far post, but the ball comes to him at a height where he is not really clear how to strike it, and the ball just rebounds off his thigh into the arms of Yann Sommer.
20' YELLOW CARD
Sebastian Rudy's name has gone into Robert Hartmann's book - the first warning of the game.
Andre Hahn slides in at the far post, but it is Hoffenheim defender Jeremy Toljan who meets Granit Xhaka's cross and the ball sneaks just inside the post instead of where Toljan wanted to see it go, it's 1-0 to the hosts!
The ball is rolling at Borussia Park and Sunday's action in the Bundesliga is underway. Both teams will be pretty keen to win this one, for different reasons.
15:22 Get ready, tune in!
Remember you can follow Gladbach vs Hoffenheim on Bundesliga radio (click on the link here or on the Tweet below), or if you prefer textual coverage, we will have regular updates right here, so stay where you are!
15:10 Stage set
Don't let the sun mislead you - there is a wintry feel in the air in Mönchengladbach. In fact, just up the road towards Bielefeld, it has even been snowing this morning, but the conditions look fine at the Borussia-Park.
14:45 Bayern reaction
There is no time to catch your breath if you are a Bayern fan, with their win at Hertha Berlin only just over and already they are preparing for their next challenge against Club Atletico de Madrid. Both games were subject of discussion post-match, and here is what Manuel Neuer and Mario Götze had to say.
Here is the team news for our opening Bundesliga fixture today:
14:08 - Match preview
Just over an hour now to kick-off in today's first Bundesliga fixture between Gladbach and Hoffenheim. To refresh your memory as to what is at stake and find out more about the clash, you can read our match preview here.
13:59 - Kitted out
All that is missing in the Gladbach dressing room now are the players, who will be arriving shortly for today's first Bundesliga fixture.
13:47 - Brandt on fire
Julian Brandt scored for the fifth game in a row on Saturday as Bayer Leverkusen turned the tables on Schalke to win 3-2. Do you want to hear how happy he was? Then click here for post-match interviews with Brandt and Leverkusen coach Roger Schmidt.
12:33 - Bayern's big week
It is a big week for Bayern and that means no rest for Pep Guardiola's men, who were up bright and early this morning beginning preparations for the trip to Club Atletico de Madrid for a UEFA Champions League semi-final on Wednesday. They can clinch the Bundesliga title with a win next weekend too.
12:20 - Game of two halves
It was the proverbial game of two halves between Schalke and Leverkusen on Saturday evening. The Royal Blues led 2-0 at the break, having also missed a penalty, but Die Werkself turned things around in a second-half flexing of their muscles. Find out what those involved made of the VELTINS-Arena drama here.
12:07 - On a roll
Alfred Finnbogason says he is confident FC Augsburg will remain in the Bundesliga after Saturday's 2-0 win away to VfL Wolfsburg took the Bavarian club five points clear of the relegation zone with three rounds of fixtures remaining. Get all the reaction from that game here.
11:00 - Pulisic interview
Christian Pulisic was at his history-making best on Matchday 31, scoring his second goal in as many Matchdays to become the youngest player to score twice in the Bundesliga. Find out how he felt about that record, and check out some other stats about the United States of America Men's National Team (USMNT) player here.
Matchday 31 Results
Click on the fixture to read the match report
That's all from us tonight. Don't forget to tune back in on Sunday as Hoffenheim look to continue their resurgence against European aspirants Borussia Mönchengldbach, while Frankfurt take on Mainz in the Rhine-Main derby.
Schalke are humble in defeat. What a way to cap off Saturday's action!
FULL-TIME! Schalke 2-3 Leverkusen
Whew! What a game! Leverkusen come from two goals down to seal all three points. Die Werkself have a five-point cushion on Hertha Berlin who are fourth. Schalke remain outside of the European places on goal-difference.
Schalke have one final throw of the dice, pumping the ball into the Leverkusen box from a free-kick, but Joel Matip is called back for offside
Choupo-Moting twists and turns on the edge of the Leverkusen area but he fires wide after losing his balance.
Meyer has the chance to draw Schalke level but after getting free in the Leverkusen box he pulls his shot wide of the near post.
Leverkusen look to pull further clear but Brandt's effort is turned away by Fährmann after looking destined for the far bottom corner.
Charles Aranguiz has covered a game-high 10.24km. It's been a fine performance from the Chile international midfielder.
Kampl fires wide from the edge of the box. The first and second halves have been like night and day for Leverkusen!
Aranguiz sees his speculative free-kick come back off the Schalke crossbar.
59' GOAL Schalke 2-3 Leverkusen!
What a turnaround! Leverkusen pour forward on the counter-attack and Javier 'Chicharito' Hernandez finishes off his 17th goal of the Bundesliga season.
55' GOAL Schalke 2-2 Leverkusen!
Bellarabi gets free on the left-hand side before volleying a wonderful attempt home via an unfortunate Ralf Fährmann.
53' GOAL Schalke 2-1 Leverkusen
Julian Brandt reduces the arrears for Leverkusen, latching onto Bellarabi's pass before squeezing home his sixth goal of 2016.
Karim Bellarabi breaks into the box and shoots but Leno tips it onto the post.
Stefan Kießling is on for Lars Bender. Two up front for Leverkusen now. Can they get back into the game?
Schalke on the march
The Royal Blues will pull up to fifth it stays like this at the VELTINS Arena.
HALF-TIME Schalke 2-0 Leverkusen
Schalke are two goals to the good thanks to Eric-Maxim Choup-Moting and Leroy Sane.
Jonathan Tah puts the jets on to get across and deny Sane another goalscoring opportunity.
A free-kick from Leverkusen's Charles Aranguiz spins off the Schalke wall and out for a corner.
LATEST Schalke 2-0 Leverkusen
The Royal Blues have completed 143 passes to Die Werkself's 96.
Choupo-Moting is on fire today! Good control in the box is followed by a turn that leaves Tin Jedvaj for dead, but his cross is collected by Leno.
Leroy Sane makes it 2-0 for Schalke! The Leverkusen defence is carved open by a one-two between Sane and Max Meyer before the former drills his seventh goal of the season low past Bernd Leno.
Choupo-Moting cuts inside from the left but what might have been his second goal of the game and fifth of the Bundesliga season is deflected wide.
Leverkusen have the chance the draw level through Kevin Kampl, but Junior Caicara nicks it off the midfielder's toe at the last.
14' GOAL! SCHALKE 1-0 LEVERKUSEN
It's been coming. Schalke break the deadlock as Eric Maxim Choupo-Moting sees his effort deflected by Ömer Toprak, leaving Bernd Leno with no chance to prevent the goal going in.
Schalke are creating all the early pressure and Leverkusen are struggling to cope. Choupo-Moting dances his way to the byline and pulls the ball back to Max Meyer, whose tame effort is easily saved by Bernd Leno.
Sead Kolasinac gets in behind down the left and produces a good cross, but Leroy Sane can only fire the ball into Row Z with his first-time half volley.
5' PENALTY SAVE!
Ömer Toprak brings Leroy Sane down in the box, but Bernd Leno does well to dive low to his right and save Klaas-Jan Huntelaar's admittedly weak spot-kick.
KICK-OFF! Schalke vs Leverkusen
The VELTINS Arena is a stunning sight as proceedings get underway in Gelsenkirchen...
18:10 - Schalke - Leverkusen line-ups
Leverkusen leading scorer Javier Chicharito Hernandez shakes off a knock to start, while Schalke welcome captain Benedikt Höwedes back to the side following injury. He's only fit enough for a place on the bench, though.
79' GOAL! HERTHA 0-2 FC BAYERN
What. A. Strike. Douglas Costa picks the ball up out wide, cuts inside and unleashes a stunning strike from 30 yards that dips up and over Thomas Kraft. Definitely one of the best long-range strikes this season.
83' GOAL! INGOLSTADT 2-2 HANNOVER
And just like that Hannover have saved their bacon...for now at least. Ingolstadt fail to clear their lines and Hiroshi Kiyotake is the right man in the right place to lash home. A point be enough to postpone Hannover's demotion.
75' GOAL! KÖLN 4-1 DARMSTADT
Marcel Risse joins Anthony Modeste in bagging his brace. Darmstadt were piling men forward and got caught on the break as Matthias Lehmann picks out Risse, who takes one touch before smashing his effort into the far corner.
64' HOPE FOR HANNOVER
Hiroki Sakai's first goal since November 2013 has given Hannover a lifeline. Furthermore it's worth noting that Ingolstadt have let a two-goal lead slip this season in a 3-3 draw with VfB Stuttgart last month.
57' GOAL! WOLFSBURG 0-2 AUGSBURG
Augsburg look to be on course for a big win as they battle to beat the drop as Halil Altintop pounces on the rebound after Alfred Finnbogason rasping effort was saved by Diego Benalgio.
57' GOAL! INGOLSTADT 2-1 HANNOVER
Is there life still left in Hannover? Advantage is played following a foul on Felix Klaus allowing Adam Szalai to play in Hiroki Sakai who smashes an effort across goal and into the far corner. Lovely strike!
56' GOAL! STUTTGART 0-3 DORTMUND
Henrikh Mkhitaryan adds to his two assists by grabbing a goal himself. Tyton does well to keep Adrian Ramos' header out, but is left stranded as Mkhitaryan fires into the vacant net with a first-time half volley.
51' GOAL! KÖLN 3-1 DARMSTADT
Marcel Risse take a bow! The winger cuts inside, leaving Junior Diaz for dead out wide before curling an effort over Christian Mathenia with the outside of his boot. He may have been trying to find Anthony Modeste with a cross but they all count!
48' GOAL! BERLIN 0-1 FC BAYERN
The deadlock is finally broken in the capital as Arturo Vidal sees his effort from the edge of the area take a wicked deflection to beat Thomas Kraft. The Chilean is in fine form right now!
We're back underway around the grounds in the Bundesliga.
5 games, 8 goals going in at the break. Plenty to play for in the second half!
45' GOAL! STUTTGART 0-2 DORTMUND
Dortmund double their lead on the stroke of half-time as Christian Pulisic reacts quickest to poke home on the rebound after Henrikh Mkhitaryan's initial effort was saved by Przemyslaw Tyton.
45' DISALLOWED GOAL!
Hannover have the ball in the net, but a handball in the build-up means the effort is chalked off.
40' NO GOALS IN THE CAPITAL
Hertha's clash with league leaders FC Bayern is the only game yet to see the deadlock broken. It took the capital city side 90 minutes to register 5 shots on goal during midweek against Dortmund, but they hit that mark inside 33 minutes today. However, while they are making life difficult for Bayern, they're not posing a great threat in front of goal.
35' GOAL! KÖLN 2-1 DARMSTADT
Anthony Modeste bags his brace with another cool finish. In honour of #Shakespeare400 it seems worth mentioning that even without Cleopatra, Anthony is still scoring!
30' SHINJI STAT
Shinji Kagawa has scored four times in his last six appearances for Dortmund.
24' GOAL! INGOLSTADT 2-0 HANNOVER
Even a man down, Ingolstadt are able to take advantage of some poor defending from Hannover as Moritz Hartmann's head home from a free-kick to move onto double digits for the season.
21' GOAL! STUTTART 0-1 DORTMUND
It has been coming, but Dortmund final get the breakthrough as Shinji Kagawa pops up unmarked inside the area to get on the end of Henrikh Mkhitaryan's delicious delivery. No title celebrations for FC Bayern if it stays this way.
20' RED CARD! INGOLSTADT DOWN TO TEN MEN!
Lifeline for Hannover? Romain Bregerie loses out to Felix Klaus in a foot race and clips the winger's heels as the last man and is shown a straight red as a result.
A few handy statistics regarding the goalscorers. Alfred Finnbogason has scored five goals in his last six games, while Anthony Modeste has set a new personal single-season best by registering his 13th of the season.
12' GOAL! KÖLN 1-1 DARMSTADT
Talking of dreadful defending, Köln gift Darmstadt an equaliser. Filip Mladenovic takes a touch inside his own area instead of clearing the ball out of touch and Jerome Gondorf capitalises to poke into the bottom corner. Game on!
10' GOAL! INGOLSTADT 1-0 HANNOVER
Needing a win to retain any hope of surviving this season, Hannover now also need to come from behind as Alfredo Morales ghosts in between two defenders to plant a powerful header into the back of the net. Dreadful defending.
3' GOAL! KÖLN 1-0 DARMSTADT
What a start to proceedings! Köln get out of the blocks quickly. Yannick Gerhardt plays in Anthony Modeste who beats his marker before placing the ball beyond Christian Mathenia's reach.
1' GOAL! WOLFSBURG 0-1 AUGSBURG
What were we saying about goals! Alfred Finnbogason has put FC Augsburg in front within a minute of kick off! Max Kruse's heavy touch gives away possession in midfield and the visitors move the ball quickly releasing the Icelandic striker, who slots between the legs of Diego Benaglio.
We're underway around the grounds. Five games, surely there will be plenty of goals!
15:12 - Bundesliga Shakespeare
Today marks the 400th anniversary of William Shakespeare's passing. Can you come up with any better suggestions than our writers? Tweet us: @bundesliga_en using #Shakespeare400.
14:53 - Köln - Darmstadt line-ups
14:53 - Ingolstadt - Hannover line-ups
- FCI goalkeeper Örjan Nyland makes his fourth Bundesliga appearance of the season.Hannover's Felix Klaus makes his first start since Matchday 12.
14:51 - Wolfsburg - Augsburg starting line-ups
14:39 - Stuttgart - Dortmund line-ups
Pierre-Emerick Aubameyang misses out again through injury for Dortmund, with Adrian Ramos once again chosen to lead the line. Matthias Ginter comes in at the back for Mats Hummels, who starts on the bench. Marco Reus takes the armband.
14:33 - Hertha - Bayern line-ups
Nope... Messrs Ribery and Alaba start on the bench in Berlin. Serdar Tasci is a surprise inclusion, the former Germany international defender making his first start since joining the club on loan from FC Spartak Moscow on 1 February.
14:26 - Best buds
14:19 - Vidal on fire
Bayern's warrior-like midfielder Arturo Vidal has hit top form of late, scoring three goals in his last four competitive outings. He won the 2015 Copa America with Chile as well as four successive Serie A titles with former club Juventus FC, but has never won the Bundesliga, DFB Cup or UEFA Champions League. How many crowns do you think King Arturo will be wearing at the end of 2015/16? Tweet us: @bundesliga_en.
13:56 - Enter the mineshaft
Schalke's royal-blue sanctum is one of the best football stadiums around: aesthetically and acoustically. Even Lothar Matthäus agrees. We'd love to hear from you if you've been or if you'll be there later today: Tweet us: @bundesliga_en
13:40 - What a day for a title win
The sun has got his hat on in Berlin, but will he be shining on Bayern later this afternoon? Remember, if Pep Guardiola's men win and Dortmund lose in Stuttgart, a 25th Bundesliga crown will be theirs.
13:30 - For the love of Schalke
Members of Schalke's UK fan club will be in attendance at the VELTINS Arena when the Royal Blues take on Leverkusen this afternoon. The lengths people go to for the beautiful game!
13:20 - Park blow
Dortmund will be without South Korea international left-back Joo-Ho Park against Stuttgart today - perhaps longer. The 29-year-old is suffering from a bruised shin, but BVB club doctor Dr. Markus Braun has not ruled out a return to first-team action before the end of the season.
13:05 - Distant memory
Speaking of two-goal salvos, Andriy Voronin - remember him? - netted twice the last time Hertha beat Bayern way back in February 2009. The Old Lady have nevertheless lost all nine of their subsequent meetings with the 24-time Bundesliga champions.
12:55 - Müller's capital gains
Thomas Müller notched a brace as Bayern beat Bremen to book a DFB Cup final showdown with Dortmund in midweek. The 26-year-old forward has now hit 31 goals in all competitions in 2015/16. Can he add to his tally and build on his impressive personal record against Hertha?
12:35 - Young guns
Two players with the world at their feet could come face to face this afternoon when Leverkusen travel to Schalke. Julian Brandt has been on fire for Bayer of late, while Max Meyer continues to impress onlookers whenever he is steps out onto the pitch for the Royal Blues.
12:05 - The Kampl effect
Bayer 04 Leverkusen midfielder Kevin Kampl made quite the impact after replacing the injured Javier Hernandez against Frankfurt last weekend. The Slovenia international needed just 30 seconds to break the deadlock, and that after seven weeks on the sidelines with a fractured fibula. What role will he have to play against Schalke today?
11:45 - Di Santo vs Ramalho
FC Schalke 04 play host to Bayer 04 Leverkusen later today in a game which could potentially prove decisive in determining which of the two sides clinches a top-four finish at the end of the season. To get you in the mood for the match check out the video below as the Schalke striker Franco Di Santo faces off with Brazilian defensive specialist Andre Ramalho on EA SPORTS FIFA 16. Could tonight play out the same way?
11:20 - FC Bayern to wrap up the title?
bundesliga.com provides a review of the possible permutations at either end of the table today
has a look at the permutations.
1) FC Bayern München can clinch the title…
…if they beat Hertha Berlin away and Borussia Dortmund lose away to VfB Stuttgart. That would give Pep Guardiola's side a ten-point lead at the top of the table with just three rounds of matches left to play.
2) Ingolstadt can secure their Bundesliga status
The promoted side will be guaranteed top-flight football next season if they beat Hannover 96 and SV Werder Bremen fail to win away to Hamburger SV.
3) Hannover will be relegated…
… if they lose to Ingolstadt. If Bremen pick up a draw away to Hamburg on Friday evening, Hannover would also go down if they draw with Ingolstadt. A victory may not even be enough to save H96 if Bremen win and both Augsburg and Stuttgart earn at least a draw.
11:05 - King Arturo!
FC Bayern München's Arturo Vidal certainly seems to be in good spirits this morning and why not? After all he could clinch his first ever Bundesliga title with the Bavarians if results go there way later today.
10:45 - Guten Morgen!
Six games, an abundance of storylines and the possible end of the 2015/16 title race! That's right we're back for another Bundesliga Saturday, which sees FC Bayern München, Borussia Dortmund, FC Schalke 04 and Bayer 04 Leverkusen all featuring on today's fixture list. The current campaign in Germany's top flight has not been short of twists and turns to keep fans on the edge of their seats and today should be no different. So get the kettle on, remove all distractions and buckle up for another wild weekend of Bundesliga action!