Bayern Munich can win the Bundesliga title next week following a 2-1 win over Bayer Leverkusen on Saturday.
Pep Guardiola's men moved 23 points clear at the top of the table thanks to a header from Mario Mandzukic and Bastian Schweinsteiger's free-kick, with Borussia Dortmund having lost at home to Borussia Monchengladbach.
Stefan Kiessling pulled one back in injury time for Leverkusen, but the Bavarians will now secure the title if they beat Mainz next weekend and Dortmund and Schalke both fail to win.
Dortmund succumbed to a 2-1 home defeat to Monchengladbach prior to Bayern's game.
The visitors took control of the game thanks to a strike from Raffael and a fine solo goal from Max Kruse, but were reduced to 10 men when midfielder Havard Nordtveit was sent off for a second bookable offence after 69 minutes.
Dortmund took advantage through Milos Jojic's deflected strike eight minutes later, but could not complete the comeback and saw coach Jurgen Klopp dismissed late on after Marvin Ducksch had a goal ruled out for a foul by Robert Lewandowski.
Huub Stevens' first game in a charge of struggling Stuttgart ended in a 1-1 draw at Werder Bremen, who took a share of the spoils thanks to Aaron Hunt's 79th-minute equaliser following Georg Niedermeier's opener for Stuttgart.
Mainz moved up to fifth after coming from two goals down to register a 4-2 success at Hoffenheim.
Shinji Okazaki was the hero for the visitiors, the Japan forward's late double giving Thomas Tuchel's men the points after they had levelled matters through Maxim Choupo-Moting and Benedikt Saller following earlier strikes from Eugen Polanski and Roberto Firmino for Hoffenheim.
Wolfsburg's 1-1 draw at Eintracht Braunschweig allowed Mainz to leapfrog them in the table, with Luiz Gustavo's 35th-minute strike not enough for Dieter Hecking's side as Karim Bellarabi earned a point for bottom club Braunschweig.
Elsewhere, Hannover moved nine points clear of the relegation play-off place with a 3-0 win at Hertha Berlin.