Round 24 of the Bundesliga saw little change at the top of the table, while the fight for spots 4-7 heated up. Bayern, Dortmund and Leverkusen all won, each pulling three points further clear of Frankfurt, who lost to Gladbach.
Wins for Gladbach and Schalke saw the two clubs climb to within four and two points of fourth-placed Frankfurt, respectively, leaving them within striking distance of a Champions League playoff spot.
Elsewhere, Hamburg, Mainz and Freiburg were all held to 1-1 draws as the race for Europa League spots tightened further.
As always, there were some heroic performances over the weekend that stood out. Click "Begin Slideshow" for a recap of the top five players in round 24, in alphabetical order by surname.
Werder Bremen took 19 shots on Mohamed Amsif's goal on Saturday, but the Augsburg goalkeeper managed to keep a clean sheet as FCA earned just their fourth win of the season.
With the score still just 1-0 to Augsburg, Amsif was put under increasing pressure later in the game as Bremen did everything they could to equalize. But the goalkeeper stayed focused, kept his composure and made a brilliant save at the death to preserve three points for the Bavarian side.
Arguably the best player in the Bundesliga this weekend was Julian Draxler, who led Schalke to their second consecutive win.
The 19-year-old fired in the opener against Wolfsburg, and restored S04's advantage after Ivica Olic had equalized. Draxler later showed his generous side as he passed on a chance to complete his hat-trick by squaring the ball to Jefferson Farfan for Schalke's third goal.
Draxler has been inconsistent this season, and has displayed his class intermittently. When on form, though, he's been absolutely brilliant, and that was the side he showed on Saturday.
After having his three-game suspension reduced to two matches on Friday, Robert Lewandowski was restored to Dortmund's starting XI this weekend for his first Bundesliga match since February 9. The Poland international made the best of his return to the BVB lineup, scoring twice for Dortmund in the first 21 minutes of their 3-1 win against Hannover.
Lewandowski's goals were critical for both him and Dortmund in light of recent news. BVB sporting director Michael Zorc announced on Wednesday that the striker had opted not to extend his contract with the Ruhr side, who that day lost to bitter rivals Bayern Munich. In playing such a pivotal role and having such an immediate effect in the following game, Lewandowski showed himself as a true professional. Whether he is sold this summer or leaves on a free transfer next year, when he goes, he will be sorely missed.
Just four days after an arduous win against Dortmund, Jupp Heynckes fielded a rotated Bayern team to face Hoffenheim in Sinsheim on Sunday. On the road and with a rotated starting XI, it was a very tricky task for the Bavarians. Nonetheless, they managed to win their 10th consecutive game and keep a clean sheet with many thanks to the magnificent Bastian Schweinsteiger.
The vice-captain picked up where he left off in midweek, bossing the midfield in every way. He was everywhere in attack and defense, winning the ball and spraying it all over the pitch. Schweinsteiger came within inches of scoring more than once, hitting the woodwork on two occasions.
Heiko Westermann celebrated his 250th Bundesliga appearance in style on Saturday, and was easily the best player on the pitch as Hamburg drew 1-1 with Fuerth.
The 29-year-old had more touches (130) and completed more passes (87) than any other player, and won a remarkable 23 out of 25 challenges. His record in 50-50 situations speaks for itself, but it should be clarified that Westermann did not only play simple passes. From the back, he distributed the ball cleverly, his creativity helping HSV break down the Fuerth defense while allowing the midfielders to stay higher up the pitch.