Bundesliga leaders Bayern Munich are four points clear at the top with victory over Hannover as Borussia Dortmund dropped points at Werder Bremen.
Goals from Robert Lewandowski, Leon Goretzka and a late clinical finish from Franck Ribery gave a comfortable home win as they continue to fight for a seventh consecutive Bundesliga title.
Second toppers Dortmund were held to 2-2 draw by Werder Bremen despite taking a two-goal lead.
Christian Pulisic in six minutes with a fine solo goal, and Paco Alcacer lead a Dortmund before the break.
But Werder Bremen hit back with two goals in five minutes from Kevin Mohwald and Claudio Pizarro who, at 40 years and 213 days, extended his record as the Bundesliga’s oldest goalscorer.
The draw leaves Dortmund with an even steeper task if they are to catch Bayern in the race for the Bundesliga title.
Niko Kovac’s league leaders will take on RB Leipzig (away) and Eintracht Frankfurt (home) in their final two games.