Bundesliga Wrap: Bayern win to close in on title
The defending champions slumped to a 3-1 UEFA Champions League quarter-final defeat at Porto in midweek and have it all to do in the second leg on Tuesday.
That loss also resulted in long-serving team doctor Hans-Wilhelm Muller Wohlfahrt resigning after being blamed for events in Portugal, but normal service was resumed at the Rhein-Neckar Arena.
The visitors took the lead through Sebastian Rode, who marked his return to the starting line-up with a cool curling effort after good work from Robert Lewandowski.
Andreas Beck scored a last-minute own goal to end any hopes of a fightback for the home side, but there was another injury concern for the Bavarian giants when Juan Bernat picked up an ankle problem.
Borussia Dortmund got their late charge for a UEFA Europa League spot back on track by easing to 3-0 win over struggling Paderborn in their first game since Jurgen Klopp announced he is to leave the club.
Klopp revealed on Wednesday that he will move on at the end of the season, bringing to an end a seven-year spell at Signal Iduna Park and his team responded with a professional display on Saturday.
Henrikh Mkhitaryan opened the scoring followed swiftly by a fine Pierre-Emerick Aubameyang finish.
Aubameyang and Shinji Kagawa both had goals disallowed for offside, but the Japan international eventually added the third 10 minutes from time, as Dortmund moved into eighth place.
Ruthless Bayer Leverkusen moved up to third by hammering relegation-threatened Hannover 4-0 at the BayArena.
Omer Toprak started the rout and further goals from Julian Brandt, Kyriakos Papadopoulos and Stefan Kiessling made it a painful afternoon for Hannover, who sit just two points and one place above the relegation zone.
Stuttgart remain second-bottom after losing 2-1 at Augsburg, who are up to fifth, while Freiburg remain level on points with Hannover after Shinji Okazaki struck twice in a 3-2 away win for Mainz.
There were no goals in Saturday's clash between Hertha Berlin and Koln at the Olympiastadion.