"The ferry went out of control due to wind and current, tilting from one side to the other," Haque, 30, said. "Then the captain jumped out because he probably understood it was sinking. The river was rough, and there were many passengers on board."
The ferry capsized in the Padma River in Munshiganj district, about 44 kilometers (28 miles) south of the capital, Dhaka.
More than four hours after the ferry capsized, authorities said they were still waiting for a larger vessel needed to launch a proper rescue operation. Local police officer Khalid Hossain said two bodies had been recovered so far.
"We are waiting for a big rescue vessel which is on its way," said Nurul Alam Dulal, a local fire official. "It's very difficult to go there at the scene and stay afloat."
Jasim Uddin, 35, was among a crowd of people who watched the vessel go down from the shore, recording it on his cellphone as it disappeared.
When the survivors began to come to shore, he said they were exhausted and panicked.
"One woman swam nearly to shore and was picked up by a speedboat," he said. "She was crying, saying she has two daughters. It was panic. Everyone was praying to God."
As news spread of the accident, about 500 people including relatives of the missing gathered by the water, many of them weeping and holding photos of their loved ones.
Scores of people die in ferry accidents every year in Bangladesh, where boats are a common form of transportation. The Padma is one of the largest rivers in Bangladesh, a delta nation crisscrossed by more than 130 rivers.
Poor safety standards and overcrowding are often blamed for the accidents. In May, about 50 people died in a ferry accident in the same district.
On Monday, the Ministry of Shipping ordered an investigation into the latest tragedy, giving a 10-day deadline.