Bayern Munich suffered their first loss of the season in the Bundesliga as a late own goal gave Bayer Leverkusen a 2-1 win, their first victory in Munich since October 1989.
Stefan Kiessling gave Leverkusen the lead in the 42nd minute before Mario Mandzukic equalised after 77 minutes. But the game was decided when Jerome Boateng was unlucky to see Sidney Sam's header rebound off him at close quarters and fly in.
Bayern dropped their first points of the season after eight straight victories, but still lead the league with a four-point advantage over closest challengers Schalke. Leverkusen ended their 22-match winless streak against Bayern in Munich to move up to fifth.
Borussia Monchengladbach hit three goals within nine minutes to reverse a two-goal deficit to win 3-2 and deal Hannover a first home defeat since April 2011.
Jan Schlaudraff scored Hannover's opener shortly after the break before Mame Biram Diouf made it 2-0 in the 53rd minute.
Alvaro Dominguez pulled a goal back after 70 minutes, Roel Brouwers equalising seven minutes later, leaving Juan Arango to score the winner 11 minutes from time.
Hannover had not lost at home in 22 Bundesliga matches - their last defeat coming on April 30, 2011 against Gladbach - but this loss saw them slip to 10th place. Gladbach, who had lost their last two away games, climbed to ninth place thanks to their dramatic comeback.
Vedad Ibisevic's late goal secured Stuttgart their first victory at home this season at the expense of high-flying Eintracht Frankfurt 2-1.
Christian Gentner's opener for the home side was cancelled out by Alexander Meier midway through the second half.
However, Ibisevic delivered what proved to be the winner six minutes from time as Stuttgart climbed into the top half of the table.