On an emotional matchday in the Bundesliga, Borussia Dortmund got three points, while almost all the teams in the relegation battle picked up points. Bayern Munich travel to Leverkusen later.
Borussia Dortmund 3-1 Frankfurt
(Reus 3', Sokratis 34', Aubameyang 86' - Fabian 29')
Only sport can write some stories and Marco Reus scoring a brilliant opening goal with a flick of his foot on his comeback,four days after the attack on BVB's team bus was one of the most special ones in Borussia Dortmund's history. On paper, Dortmund won their 15th game of the Bundesliga season but anyone in the Signal Iduna Park felt it was much more than that.
Sokratis, a man who was overwhelmed with emotion after the game against Monaco on Wednesday, hammered in a contender for the goal of the month minutes after Frankfurt's Marco Fabian had done the same at the other end.
Dortmund looked in danger of following their unwelcomed habit of snatching draws from the jaws of victory, but Pierre-Emerick Aubameyang made sure of the three points with his 26th goal of the season, finishing off a break sparked by good work from Ousmane Dembele with a smart finish.
Leipzig 4-0 Freiburg
(Poulsen 35', Werner 41', Keita 51', Demme 90+1')
In the battle of the newly-promoted teams, Leipzig came out on top thanks to a strong display from Yussuf Poulsen. An excellent header and an assist from the 22-year-old striker put the hosts on their way, and Christian Streich's side, as has often been the case this season, found no answer away from home. Naby Keita curled in a third just after the restart to make sure Nils Petersen's apperance off the bench didn't have its usual impact, and Diego Demme took a knock to his face to score his first ever goal. Timo Werner's goal tally for the season rises to 16 as Leipzig secured a top-four spot.
Hoffenheim 5-3 Gladbach
(Szalai 10', 24', Demirbay 57', 90' Uth 75' - Vestergaard 31', Stindl 36', Dahoud 79')
Third-placed Hoffenheim aren't budging and although Gladbach did their best to spoil the party, Julian Nagelsmann's side held onto their undefeated home record in an eight-goal bonanza. A neat brace from Adam Szalai left Yann Sommer looking short of his best, but when Jannik Vestergaard slid in at the back post to convert Gladbach's first chance the game was competitive again. The visitors were level when Lars Stindl finished off a bizarre move that saw a handball from Jonas Hofmann in the build-up, but referee Christian Dingert waved play on and Gladbach scored.
After four goals in 45 minutes, Kerem Demirbay's free kick ghosted in at the back post with Sommer again looking flat-footed. When Mark Uth smacked in a stunning fourth from range that appeared to be that. But Dahoud, who perhaps fortunately evaded a red card for a reckless challenge earlier on, curled in to make the difference just one goal again. Demirbay nodded in his second and Hoffenheim's fifth late on to make sure the home side were the victors on a thrilling afternoon.
Wolfsburg 3-0 Ingolstadt
(Suttner o.g. 45+1', Malli 69', Gomez 80')
It wasn't pretty, but at this stage of the season it doesn't have to be for sides in the relegation fight. Wolfsburg and Ingolstadt are two of those and after weeks of resurrecting themselves, Maik Walpurgis' team were finally beaten. Markus Suttner deflected a Wolfsburg cross into his own net just before the break. Yunus Malli's first ever goal for Wolfsburg deservedly ended the contest and Mario Gomez finished neatly for goal number 14 on the season on a torrid afternoon for Ingolstadt that left them four points adrift of the relegation playoff spot.
Augsburg 2-1 Cologne
(Hinteregger 5', Verhaegh 24' pen. - Sörensen 65')
Winless in six, Augsburg looked the odds-on favorite to spiral further into relegation trouble, but a spirited display saw them boost their survival hopes and dent Cologne's European dreams. The home side ran two kilometers more and, pivotally, scored more as well. Martin Hinteregger's header had Augsburg head coach Manuel Baum jumping for joy. Paul Verhaegh scored penalty number 17 from 19 attempts and the home stadium was delirious. When Yuya Osako missed an open goal, it seemed Augsburg were destined to win. Frederik Sörensen made up for giving away a penalty by scrambling in an equalizer with the help of Philipp Max's knee on the goal line, but Cologne were too lacklustre for too long and paid for it. A frantic finale saw Ja-Cheol Koo and Alfred Finnbogason sent off and Baum sent to the stands, but Augsburg held on.
Mainz 1-0 Hertha Berlin
Martin Schmidt's rallying cry to the fans and his team ahead of the game against Hertha worked as Mainz secured a huge three points in their fight for Bundesliga survival. And Schmidt's side deserved all three points as well. In a close and intense encounter, Mainz outplayed, out shot and out scored Hertha thanks to John-Anthony Brooks deflecting in Danny Latza's curling shot at the end of the first half. Hertha's only consolation on the afternoon was that everyone else chasing a European spot also lost.