The passengers included 10 Germans, four Americans, four Austrians, two Japanese and one each from Argentina, Turkey and Israel, said police commander Winrich Granitzka.
"We were afraid he wanted to end it with a bang," said Mr Granitzka after armed officers rushed on to the bus with guns blazing after fooling the hostage-taker into thinking they were approaching to give him a replacement mobile phone.
The man had tricked the police into thinking he had dynamite strapped to his body and the doors of the bus, with ignition wires in his hands. The sticks turned out to be pieces of wood.
Four of the hostages escaped during the day. When the last, a 50-year- old man, ran out, the gunman shot him in the upper chest and ordered him to return "or I'll kill your wife," Mr Granitzka said. Police dragged the man to a truck and rushed him to the hospital, where he was in critical condition. Police then heard a shot from inside the bus and later found the body of the driver and a 60-year-old woman.
That shot persuaded the police to act quickly, said prosecutor Karl Utermann: "This was a killer who would stop at nothing." Police were vague about the gunman's demands. Some hostages said he asked to go to Paris or to speak to a government representative. He yelled something once about the Russian mafia. He spoke in broken English and broken German until a Russian translator was brought. They communicated on the bus's mobile phone until its battery died. "We assume that he was not somebody who just wanted money. We assume his demands eventually would have had a political overtone," said Mr Granitzka.
Police said about 20 adults and three children had boarded the municipal tour bus in front of the twin spires of the ancient Cologne Cathedral at 10 am for the two-hour tour.
Forty minutes later, when it stopped at the fairgrounds exhibition centre for a panoramic view of the skyline, the gunman went forward, argued with the driver and shot him dead.
A construction worker saw the struggle and called police. The gunman opened fire with an automatic pistol on the patrol car that answered the alarm, wounding an officer in the stomach. He was out of danger after an operation. The co-driver, a 34-year-old Chinese language student, escaped shortly after the drama began when the gunman ordered her to go outside and get his bag from the luggage compartment. She hid under the shot-up patrol car for an hour until police could pull her out. A few hours later, her 11-year-old son and the wounded man escaped from the back window of the bus, broken by passengers in an attempt to flee. After that, Mr Granitzka said, the gunman tied the remaining hostages together and blindfolded them.