Kingsley Coman scored one goal and set up another as Bayern Munich came from a goal behind to beat Stuttgart 3-1 on Saturday and defend their top spot in the Bundesliga. But rivals Borussia Dortmund suffered a shock 2-1 loss to visitors Cologne to drop four points off the pace in the title race. Bayern goal machine Robert Lewandowski drilled in his 12th league goal of the season on the stroke of halftime from a Coman assist to turn the game around after Tanguy Coulibaly had put the hosts in front in the 20th minute and Coman had levelled. It was the seventh consecutive game in which Bayern conceded a goal, and Philipp Forster should have doubled Stuttgart's lead when he missed the target from three metres out. But Coman then hit the home side on the break, confirming his fine current form when he scored from a tight angle to level the tie in the 38th. Stuttgart kept carving out chances in the second half and Manuel Neuer did his best to keep the visitors in front. It was not until Douglas Costa's low shot in the 87th made it 3-1 that the Bavarians were able to breathe more easily. Bayern, who face Atletico Madrid in the Champions League next week, are on 22 points with RB Leipzig second on 20 after beating Arminia Bielefeld 2-1. Dortmund are third, four points behind the leaders. Cologne stunned Dortmund with an early goal when Ellyes Skhiri tapped in at the far post in the ninth minute. Dortmund, who had fired five goals past Hertha Berlin last week, were lacking any punch and instead it was hard-working Cologne who scored again with Tunisia international Skhiri on the hour. Thorgan Hazard cut the deficit with a low shot in the 74th minute but despite desperate late attacks and a golden chance missed by Erling Braut Haaland deep in stoppage time they could not get an equaliser. Cologne avoided a club record 19th match without a win with their first victory in Dortmund since 1991.