Bayern end winless streak
Bayern Munich ended a three-match winless run when they beat Bayer Leverkusen 2-1 on Saturday, although the Bundesliga champions still had to cling on at the end.
Borussia Dortmund, who beat Bayern Munich one week ago, ended an eventful week by losing 2-1 at Eintracht Frankfurt while Hoffenheim remained unbeaten after drawing 1-1 at Borussia Moenchengladbach.
Werder Bremen twice came from behind to draw 2-2 at bottom club Hamburg SV, who remained winless after 12 games, in the relegation dogfight.
Champions Bayern's win kept them three points behind RB Leipzig, who lead with 30 points from 12 games after their 4-1 win at Freiburg on Friday.
Frankfurt are third on 24 points followed by Cologne and Hoffenheim on 22 and Dortmund, last season's runners-up, back in sixth on 21.
Thiago Alcantara headed Bayern in front on the half hour after poor Leverkusen defending but the visitors levelled five minutes later when Hakan Calhanoglu played a one-two with Julian Brandt to slice open the defence and fire past Manuel Neuer.
Bayern regained the lead when Mats Hummels headed in Joshua Kimmich's cross but they had to endure an agonising finale before claiming their first win since they beat PSV Eindhoven in the Champions League more than three weeks ago.
Javi Martinez had to make a desperate lunging clearance to prevent Kevin Volland scoring, then Kevin Kampl curled a shot narrowly wide before a Calhanoglu free kick was saved by Neuer with the last kick of the game.
Szabolcs Huszti gave Frankfurt the lead against Dortmund 16 seconds into the second half when he slotted home from Timothy Chandler's cross.
Pierre-Emerick Aubameyang headed Dortmund level in the 77th minute, only for substitute Haris Seferovic to grab the winner for the hosts from the next attack.
Dortmund were agonisingly close to an equaliser when Ousmane Dembele curled a shot against the crossbar in stoppage time.
Hoffenheim's unbeaten record was in danger when they fell behind to Mahmoud Dahoud's goal after 25 minutes at Glabach but Nadiem Amiri equalised with a shot from the edge of the area eight minutes after the re-start.
Hamburg, the only ever-present team in the Bundesliga's 53-year history, took a third minute lead through Michael Gregoritsch, only for Fin Barlets to equalise 10 minutes later.
Nicolai Mueller and Lewis Holtby combined to set up Gregoritsch for his second in the 28th minute but Serge Gnabry equalised with an individual effort on the stroke of halftime.
Hamburg stayed rooted to the bottom with four points with Bremen two places above them in the relegation playoff spot on eight.