Berlin: Defending champions Bayern Munich trimmed the gap in the Bundesliga table to five points behind Borussia Dortmund on Saturday as Robert Lewandowski scored his 100th goal at home in a 3-1 win over Schalke 04.
"We did really well in the first-half, then for patches in the second," said coach Niko Kovac as Bayern bounced back from last Saturday's shock 3-1 defeat at Leverkusen.
"We deserved the win and the margin of victory."
Dortmund had earlier blown a three-goal lead at home to Hoffenheim, who scored three times late on, in a dramatic 3-3 draw.
Bayern dominated at Munich's Allianz Arena, taking the lead after new Schalke signing Jeffrey Bruma bundled the ball into his own net on 12 minutes.
Schalke pulled level when Turkey international Ahmed Kutucu finished a brilliant counter-attack on 25 minutes to beat Sven Ulreich, Bayern's stand-in keeper with Manuel Neuer sidelined by a thumb injury.
Poland striker Lewandowski restored Bayern's lead just 90 seconds later when he netted his 100th goal at the Allianz Arena in the red shirt.
James Rodriguez then went close for Bayern, while Thiago Alcantara cleared a Weston McKennie header as Schalke threatened to equalise before half-time.
US international McKennie hit the post after the break for Schalke, but Serge Gnabry sealed Bayern's win with a header on 57 minutes after Lewandowski directed the ball towards goal with a bicycle kick.
Despite a dazzling display from Jadon Sancho, Dortmund had only themselves to blame for surrendering a commanding lead against Hoffenheim.
Sancho opened the scoring, set up two goals and hit the post as the hosts shone over 70 minutes at Signal Iduna Park despite head coach Lucien Favre " laid up with the flu " missing from the Dortmund bench.
However, with the leaders cruising at 3-0 up thanks to goals by Sancho, Mario Goetze and Raphael Guerreiro, Hoffenheim came off the ropes with Algeria forward Ishak Belfodil netting twice.
"When you lead 3-0 at home, then draw 3-3, it is very bitter " it shouldn't have happened," said Goetze.
"We gave them nothing for a long time, then things really went against us."
The result will give Mauricio Pochettino food for thought before his Tottenham team host Dortmund on Wednesday at Wembley in the Champions League last 16, first leg.
"We had the chance to go 4-0 up, so to draw is tough to take," said Dortmund assistant coach Manfred Stefes.
"We defended the goals too naively and unfortunately lost the one-on-one challenges when it really mattered."
In the absence of top-scorer and playmaker Marco Reus, sidelined with a thigh injury, Sancho stepped up with one of his best performances since joining Dortmund from Manchester City in August 2017.
However, Hoffenheim fought back in the final 20 minutes when Belfodil tapped home his first goal from a cross by Pavel Kaderabek, who made it 3-2 with a bullet header eight minutes from time.
Belfodil completed the comeback and claimed a point for Hoffenheim when he launched himself at a free-kick and his header beat goalkeeper Roman Burki on 87 minutes.
Elsewhere, Borussia Moenchengladbach slipped to third after losing 3-0 at home to Hertha Berlin as Salomon Kalou, Ondrej Duda and Davie Selke scored.
In the basement battle, Hanover climbed off the bottom with a 2-0 home win at 10-man Nuremberg, who dropped to the foot of the table, with former Germany striker Nicolai Mueller scoring both goals.
Nuremberg were reduced to 10 men after only 11 minutes when midfielder Simon Rhein was shown a straight red card for a dangerous foul.
Fourth-placed RB Leipzig were held to a goalless draw at home by Eintracht Frankfurt, who are just one place behind them.
Mid-table sides Freiburg and Wolfsburg shared a point in an entertaining 3-3 draw as Gian-Luca Waldschmidt equalised for hosts Freiburg two minutes from time.