On Bayern's final league game ahead of the winter break the hosts were stunned when influential midfielder Frank Ribery was sent off after 33 minutes after being shown two yellow cards in the space of a minute.
However that failed to faze Jupp Heynckes' league leaders, who finished the first half with a flurry and took an early lead in the second as Mario Gomez claimed his 16th goal in 16 league games.
"Cologne had a solid defence like no other team," said Heynckes.
"After the sending off of Franck Ribery, my team reacted perfectly. We dominated, played intelligently and our superiority was translated into goals."
Cologne, who have been battling to get out of the bottom half of the table, were struggling to make the advantage count and their defence was found wanting when second half substitute David Alaba doubled Bayern's lead just after the hour mark.
Midfielder Toni Kroos made it three in the dying minutes as unconvincing Cologne's defence fell apart.
Billed as a contest between Gomez and Lukas Podolski, the Cologne striker who is attracting interest from Premier League side Arsenal among others, it was the former who snatched the bragging rights.
Neither team had produced solid goalscoring chances in the opening half, in which Ribery provided the best drama after the volatile Frenchman was sent off for two altercations with Portuguese defender Henrique Sereno.
But after the interval, and in spite of their numerical disadvantage Bayern came out flying.
The Cologne defence was nowhere to be seen when Thomas Mueller -- who had missed a great chance to open the scoring moments earlier -- latched on to a deep cross on the right flank.
Mueller did well to hold off his marker and squared a short ball to Gomez who tapped the ball past Michael Rensing from close range.
Mueller was substituted for Alaba in the 52nd minute, and that proved to be an inspired choice by Heynckes.
The Austrian international, who is of Indonesian/Nigerian parentage, looked lively from the outset and was quick to show his killer instinct.
Kroos sent a probing corner into the box in the 63rd minute and Alaba, who was left unmarked, picked up a rebound to smash the ball past Rensing for only his second league goal.
Podolski has netted 14 times this season and has five goals in his last three league games, but the lack of his success led to his substitution for Sebastian Freis in the 69th minute.
Cologne's Norwegian coach Stale Solbakken also replaced his second striker, Christian Clemens, a minute later but neither Freis nor Odise Roshi came close to conjuring up the goal that would have given the visitors hope.
Cologne's pain was complete when Kroos, who had fired several times over the crossbar in the first half, lobbed Rensing after a short pass from Alaba following a defensive mix-up in the 88th minute.
What the stars mean:
★ Poor ★ ★ Promising ★★★ Good ★★★★ Very good ★★★★★ Exceptional