Schalke 04 won 2-1 at struggling VfB Stuttgart to stay on the heels of the Bundesliga leaders on Saturday while Bayern Munich notched their first victory in three games with a 2-1 triumph at Freiburg.
Schalke grabbed the lead midway through the first half when defender Stefano Celozzi failed to clear a cross from Rafinha, allowing Ivan Rakitic to fire home from close range.
Keeper Manuel Neuer did well to protect his team's fragile lead when he saved a Cacau volley from 18 metres on the stroke of halftime.
Neuer though could not stop the Brazilian-born Germany international scoring with a tap-in after Julian Schieber whipped in a low cross on 73 minutes, giving 13th-placed Stuttgart hope of avoiding their fourth defeat in five league matches.
Kevin Kuranyi then stunned the hosts with 14 minutes to go, firing the winner after Rafinha found him unmarked on the right.
Schalke are third on 19 points, a point behind Hamburg SV and Bayer Leverkusen who meet later on Saturday.
Bayern needed a scrappy effort from Thomas Mueller and a spectacular own goal from defender Cha Du-ri to edge past promoted Freiburg.
Italy striker Luca Toni was in the starting line-up for the first time this season but the Bavarians, without injured Franck Ribery and Arjen Robben, were lucky to take the lead three minutes before halftime.
Mueller pounced on a loose ball in the box to score after Toni and Miroslav Klose failed to convert from close range.
South Korean Cha Du-ri made it 2-0 when he wrong-footed keeper Simon Pouplin with a back pass on 68 minutes.
Stefan Reisinger pulled a goal back for Freiburg in stoppage time but Bayern's win took them up to fifth with 15 points from nine matches.
Bottom-of-the-table Hertha Berlin continued their dismal run, going down 3-0 at Nuremberg to suffer their eighth defeat in a row.