Bayern Munich closed to within five points of top spot in the Bundesliga with a hard-earned 3-1 win over Schalke at Allianz Arena on Saturday.
Borussia Dortmund earlier surrendered a three-goal lead to dramatically draw with Hoffenheim and Bayern seized on the slip-up to strengthen their hopes of reeling in the leaders.
Jeffrey Bruma's own goal and Robert Lewandowski's composed finish either side of a surprise Ahmed Kutucu strike on the counter-attack handed the hosts a half-time advantage that Serge Gnabry extended before the hour.
Niko Kovac's men, while not entirely convincing at the back, were assured from thereon in ensuring Joshua Kimmich's 100th top-flight appearance was celebrated with a timely victory.
James Rodriguez retained his place after an influential display in the midweek DFB-Pokal triumph over Hertha Berlin and it was his pass that instigated the 11th-minute opener, Bruma's attempt to poke the ball away from Lewandowski ending with it nestling in his own net.
Hertha levelled when Weston McKennie released teenager Kutucu for an unerring finish against the run of play, but parity lasted less than two minutes.
Nabil Bentaleb's loose pass led to a one-touch combination between Serge Gnabry and James that freed Lewandowski to dispatch his 100th goal at Allianz Arena.
Schalke went agonisingly close to drawing level soon after the interval as midfielder McKennie and defender Bruma both saw efforts come back off the same left post in quick succession.
Their frustration grew greater in the 57th minute as Lewandowski's bicycle kick from a Kingsley Coman cross fell kindly for Gnabry to nod beyond Ralf Fahrmann.
Lewandowski fluffed a chance to double his tally with just over 15 minutes to play but the miss counted for little as Bayern issued an important response to last weekend's loss to Bayer Leverkusen.