Jurgen Klopp's men already appear to be out of the Bundesliga title race in October after another poor display on Saturday afternoon
Jurgen Klopp's side have experienced a dreadful opening to their league campaign and that run continued with a tame loss on the road.
Even the return of several key players failed to spark a turnaround at the Rhein Energie Stadion, with Cologne adding to Dortmund's woes by taking the lead in the 40th minute through Kevin Vogt.
Ciro Immobile equalised early in the second half and it was the visitors looked the more likely until Zoller restored Cologne's advantage in the 74th minute.
Klopp’s men were deflated and, although they pressed towards the end, they were unable to penetrate Cologne's stubborn defence.
Dortmund, who had lost three of their last four Bundesliga fixtures, were boosted by the returns of Marco Reus, Henrikh Mkhitaryan and Ilkay Gundogan from injury.
Midfielder Gundogan has been sidelined by a persistent back problem since last August, with Reus back after picking up a knock on Germany duty last month, and Mkhitaryan featuring following a foot injury.
And they were clearly buoyed by the trio's presence in the early exchanges, with Reus and Mkhitaryan combining superbly to play in Immobile, but the Italian forward sliced his shot wide from an acute angle, before Reus himself went close with a curling effort.
Klopp's side had accumulated just seven league points out of a possible 21 and slumped to a 1-0 home loss to lowly Hamburg before the International break.
Dortmund enjoyed just less than 60 per cent possession in that game and, despite amassing 17 shots on goal, only managed to get three on target.
History looked set to repeat itself when, in spite of the early Dortmund pressure, it was Cologne who took the lead just before half-time, capitalising on shaky defending from the visitors.
Midfielder Vogt latched onto a Marcel Risse through ball before calmy prodding home his first goal of the season in what was the hosts' first chance of note.
But last season's runners-up levelled just three minutes after the interval, Reus advancing through the parting Cologne midfield before slipping a cute reverse pass to Immobile.
The 25-year-old made no mistake with his finish this time around, expertly dinking the ball over the onrushing Timo Horn.
Dortmund suddenly looked fearsome again, with Reus and Gundogan becoming more prominent as Cologne dropped deeper.
However, they were unable to breakthrough, and Cologne almost regained their lead in the 68th minute when Zoller squirmed an effort just wide of the upright under pressure from Mats Hummels.
And the Austrian atoned six minutes later when Dortmund again conceded possession in their own third.
Cologne worked it wide to Yuya Osako, who floated in an inviting cross that found Zoller to poke it into an empty net after Weidenfeller had charged off his line to ensure Peter Stoger's side leapfrogged Dortmund in the table.