It started in one building where chemicals for deodorants and other household uses were illegally stored and spread at lightning speed to four nearby buildings, the fire service said.
People became trapped by the flames at a nearby bridal party and a restaurant. TV images showed the gates to one building were chained up so residents were unable to escape.
Traffic jams in the clogged narrow streets held up the rescue operation.
Bangladesh fire chief Ali Ahmed said at least 70 people were killed but that the toll would likely rise.
“The number of bodies may increase. The search is still going on,” he told AFP.
Doctors said at least 10 of the scores of injured were in critical condition.
Firefighters who took almost 12 hours to bring the fire under control, went through the blackened floors of the building, littered with spray cans, looking for bodies.
The fire started at about 10.40pm (1640 GMT) on Wednesday at Chawkbazar in the old Mughal part of the capital.
Ahmed said it may have been started by a gas cylinder and quickly spread through the building where chemicals were stored in rooms alongside the apartments.
Chemicals used for household products were also stored in the nearby buildings. They exploded as the fire spread, witnesses said.
“There was a traffic jam when the fire broke out. It spread so quickly that people could not escape,” the fire chief said.
Another fire official told reporters the blaze was under control but was not extinguished despite the efforts of more than 200 firefighters.
“It will take time. This is not like any other fire,” he said, adding that the inferno had been made more devastating by the “highly combustible” chemicals.
Fire trucks had struggled in the narrow streets to reach the scene and there was also a lack of water for the battle, officials said.
The main gate of one five storey building was chained up, trapping residents inside, according to images shown on Bangladesh television.
– ‘Flames were everywhere’ –
Members of a bridal party in a nearby community centre were also caught in the fire and many were injured. Others were caught in small restaurants.
Dhaka deputy police commissioner Ibrahim Khan said at least two cars and 10 cycle rickshaws were burned in the fire.
“The victims included passersby, some people who were eating food at a restaurants and some members of the bridal party,” he told AFP.
“I saw the charred body of a woman who was holding her daughter in her lap as their rickshaw was caught in the fire,” said one witness.
Haji Abdul Kader, whose shop was destroyed, said he only survived the blaze as as he had left to go to a pharmacy.
“When I was at the pharmacy, I heard a big bang. I turned back and saw the whole street, which was jam packed with cars and rickshaws, in flames. Flames were everywhere,” he told AFP.
“I got burned and rushed to hospital,” he said.
Doctors at Dhaka Medical College Hospital said at least 55 people were injured, including 10 in a critical condition.
Hundreds of people rushed to the hospital looking for missing relatives.
However, most of the bodies of the dead were charred beyond recognition.
Sohag Hossain, one of the injured, told the Daily Star that he and two friends were working at a plastic factory in one of the buildings at the time of the fire.
They heard an explosion and could not escape the flames.
A similar blaze in 2010 in an old Dhaka building, which was also used as a chemical warehouse, killed more than 120 people in one of the worst fire disasters in the city of 20 million people.
Dhaka authorities launched a crackdown on chemical warehouses in residential areas following the blaze, but efforts to rein in the practice have waned.
Many buildings in Bangladesh lack adequate fire safety measures and the enforcement of fire regulations in factories and apartment buildings is lax.
Download our app and read this and other great stories on the move. Available for Android and iOS.