Bayern Munich gained revenge for a defeat at home to Bayer Leverkusen by winning the reverse fixture by the same scoreline, 2-1, at the BayArena.
Mario Gomez put Jupp Heynckes' side in front, but they needed a rather fortunate own goal from Philipp Wollscheid to win the game late on after Simon Rolfes had brought the hosts level.
The win restores Bayern's 20-point cushion at the top of the table with only eight games of the season left while Leverkusen now trail second-placed Borussia Dortmund by four points and remain six clear of Eintracht Frankfurt and Schalke in fourth.
Bayern played with a weakened side as Heynckes gave rests to captain Philipp Lahm, Franck Ribery, Thomas Muller and Mario Mandzukic.
Freiburg conceded five goals for the second game in a row with Borussia Dortmund coming from behind to win 5-1 and move four points clear of Leverkusen.
Three goals in five minutes helped Dortmund turn the game around after Jonathan Schmid had given the visitors the lead in the 28th minute. It was Freiburg's first goal in Dortmund in over 11 years and the last player to score for Freiburg in the Westfalian city was Sebastian Kehl, the current Dortmund captain who missed out injured.
Nuri Sahin got his name on the scoresheet twice as the Westphalians left their opponents no chance and cemented second place, Robert Lewandowski also netting a brace while Leonardo Bittencourt got a late fifth.
Nurnberg piled more misery on Schalke with a convincing 3-0 win at the Frankenstadion, which lifted them to a safe distance from the relegation zone and left the Royal Blues licking their wounds after a second crushing defeat in five days.
Schalke hit the woodwork twice but it simply was not their day as, after being eliminated from the Champions League by Galatasaray in midweek, they saw their bid for a top-four Bundesliga finish suffer a setback.
Markus Feulner put Nurnberg ahead before half-time with further goals from Alexander Esswein and Mike Frantz earning Michael Wiesinger's side all three points, moving them 10 points clear of the drop zone.
Augsburg boosted their survival hopes with a 1-0 victory in Hamburg which reduced the gap to 15th-placed Stuttgart to just five points and dented the home team's hopes of playing in Europe next season.
Jan-Ingwer Callsen-Bracker scored the only goal of the game in the eighth minute, while Hamburg's woes were compounded by a red card shown to Maximilian Beister late on.
The home side had chances to level and even to win the game, but lacked incision in front of goal, while Augsburg goalkeeper Mohamed Amsif played his part in what could prove to be a crucial win for the Bavarians.
Werder Bremen's troubled season continued as they were held 2-2 at home by bottom club Greuther Furth whose new coach Frank Kramer had an encouraging first game in charge.
Two penalties from Aaron Hunt did not appease the home fans, who vented their anger at yet another lacklustre performance and disappointing home result for the northern Germany side, who can forget about any lingering hope they had of qualifying for Europe next season.
Stephan Furstner and Thanos Petsos accounted for Furth's goals as they picked up their 15th point of the season, remaining 14 points adrift of safety with eight games of the season remaining.
Hoffenheim's Bundesliga future is looking bleaker after they were held to a 0-0 draw at home to Mainz.
With Augsburg beating Hamburg, a point for Hoffenheim leaves them four points behind the Bavarians, who occupy the relegation play-off berth, and nine points adrift of safety with only seven games to go. Mainz move up to sixth in the table, taking advantage of Hamburg's defeat.
Information from the Press Association was used in this report