Michael Bradley's late equaliser earned Borussia Moenchengladbach a 2-2 draw that ended Bayern Munich's run of victories, while Bayer Leverkusen won to stay top of the Bundesliga.
Franck Ribery and Luca Toni had put Bayern Munich 2-0 up at Gladbach, before the home side scored twice in the last 15 minutes to keep Bayern third in the table. Canadian Rob Friend scored with a header on 78 minutes to make it 2-1, and Bradley got his head to a cross three minutes later to deny Jurgen Klinsmann's team a sixth straight success.
Toni's second goal in as many games, following a pass from left-back Philipp Lahm, put the reigning champions in front on 21 minutes. However, Borussia's teenage forward Marko Marin, who is in the Germany squad for Wednesday's friendly against England in Berlin, was a constant thorn in Bayern's side.
Ribery converted a penalty just after the hour mark, and it appeared Bayern were cruising to three points until Borussia's comeback.
Schalke striker Kevin Kuranyi scored a consolation goal and Bayer were reduced to ten men with just over an hour played, when Gonzalo Castro was sent off. However, the leaders held on for all three points.
Second-placed Hoffenheim had a tough time at home to Wolfsburg, who equalised twice to make it 2-2 at half-time. Vedad Ibisevic scored his 14th goal in 13 games to remain the league's top scorer and put Hoffenheim ahead on 23 minutes, only for Grafite to level the scores four minutes later.
Carlos Eduardo restored Hoffenheim's lead on 37 minutes, only for Wolfsburg striker Edin Dzeko to equalise four minutes later. But Hoffenheim stayed level on points with Bayer thanks to a 69th-minute winner from Nigerian Chinedu Obasi.
Two goals in three minutes gave Hertha Berlin a 2-1 win over Hamburg to fire the home side up to fourth. Borussia Dortmund enjoyed a 4-0 win over Eintracht Frankfurt, with their teenage defender Neven Subotic scoring two first-half goals to add to the five he already has this season.
Meantime, Stuttgart drew 0-0 with Armenia Bielefeld and Energie Cottus picked only their second win of the campaign, edging Karlsruhe 1-0. On Friday, Hanover and Bochum drew 1-1.