Bayern Munich lost their 100 per cent Bundesliga record at home to Bayer Levekusen, while Hannover and Frankfurt suffered defeats.
An 87th-minute own goal from Germany centre-half Jerome Boateng stunned leaders Bayern Munich after they had earlier pegged back visitors Bayer Leverkusen.
Mario Mandzukic had cancelled out Stefan Kiessling's first-half opener with 13 minutes left but there was still time for Boateng to deflect substitute Sidney Sam's header into his own net.
Bayern's defeat leaves them four points ahead of second-placed Schalke, who beat Nurnberg 1-0 on Saturday.
Eintracht Frankfurt could have moved back above Schalke on Sunday but they were on the receiving end of Stuttgart's first home league win.
Vedad Ibisevic scored his side's winner for the second successive league game six minutes from the end. Alexander Meier had levelled for Frankfurt on 67 minutes after Christian Gentner's sixth-minute opener.
Borussia Monchengladbach scored three late goals to complete a memorable comeback and win 3-2 at Hannover.
The hosts were 2-0 up thanks to goals from Jan Schlaudraff (48) and Mame Diouf (53) but imploded in 10 second-half minutes.
Alvaro Dominguez (70) and Roel Brouwers (77) quickly drew Monchengladbach level before Juan Arango won it with 11 minutes left.