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.
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.