A review of this weekend's action in the German Bundesliga.
Stuttgart ended a four-match losing run in the Bundesliga with a 1-0 win at struggling Hoffenheim on Sunday.
Martin Harnik scored in the third minute to earn the visitors their first points since the winter break.
Defeat left the hosts third from bottom and 10 points from safety.
Sebastian Polter salvaged Nurnberg a 2-2 draw as Hannover were denied their first win in five away games in dramatic circumstances.
Hannover appeared to be on course for a victory which would have put them right back in the hunt for a Europa League place when goals from Szabolcs Huszti and Didier Ya Konan gave them a 2-1 lead, Timm Klose on target for the hosts.
But Polter struck with almost the last kick of the game to earn Nurnberg a share of the spoils at the Frankenstadion, and take them 10 points clear of the relegation zone.
Borussia Dortmund bounced back from last week's home defeat against Hamburg by seeing off fourth-placed Eintracht Frankfurt 3-0, despite finishing with 10 men for the second straight weekend.
Marco Reus single-handedly dismantled the Eagles with a hat-trick as the Bundesliga champions moved back within 15 points of runaway leaders Bayern Munich, who had won 2-0 at Wolfsburg on Friday night.
The Germany international netted two goals in as many first-half minutes and added a third midway through the second half after Julian Schieber had been given his marching orders.
Bayer Leverkusen snapped a three-game winless streak with a 2-1 home victory over relegation-threatened Augsburg to remain in the running for second.
Stefan Kiessling opened the scoring for Leverkusen in the 26th minute and Lars Bender doubled their advantage 15 minutes from time.
Sascha Molders made things interesting by pulling a goal back for the visitors in the 89th minute, but they could not force an equaliser.
Rafael van der Vaart's brilliant first-half goal proved decisive as Hamburg boosted their hopes of European football with a 1-0 triumph over Borussia Monchengladbach.
The Holland midfielder despatched a fine effort into the top-left corner from outside the box in the 24th minute.
Michael Bastos scored a brace as Schalke twice came from behind to draw 2-2 at Mainz.
Mainz went ahead through Andreas Ivanschitz in the 27th minute, but Bastos levelled four minutes before the break. Zdenek Pospech restored the hosts' lead midway through the second half, but Bastos ensured the visitors a draw with eight minutes left.
Freiburg twice saw Werder Bremen equalise before finally taking the lead and finishing off a 3-2 victory, recording their first win over Bremen in 11 years.
Max Kruse gave Freiburg the lead after 36 minutes before Nils Petersen equalised moments later.
Daniel Caligiuri made it 2-1 to the visitors from the penalty spot in the 55th minute, and, although Petersen's second levelled it up again nine minutes later, Matthias Ginter's 70th-minute strike finally settled it.
Axel Bellinghausen's early goal was enough for Fortuna Dusseldorf to defeat 10-man Greuther Furth 1-0 at home in a battle of promoted teams.
Dani Schahin missed an early penalty for the hosts before Bellinghausen grabbed the game's only goal in the 18th minute. Bottom-of-the-table Furth had midfielder Jozsef Varga sent off in the 38th minute for a second bookable offence.
Bayern Munich's march towards a 22nd Bundesliga title continued as they beat Wolfsburg 2-0 in the first game of the weekend.
A Mario Mandzukic goal against his former club 10 minutes before half-time and a late Arjen Robben strike were enough for Jupp Heynckes' side to maintain their momentum as they close in on the title in record time.