The ferry, with an estimated 750 passengers, sank at the confluence of the Padma, Meghna and Dakatia rivers as it approached a ferry terminal about 40 miles south of the capital, Dhaka.
"There was a big jolt and the ferry started going down," said Rina Begnum, who was on the upper deck with her 3-year-old daughter.
About 220 passengers swam to shore or were rescued by fishermen. But many were sleeping on the triple-deck ferry when it sank at about 11:15 p.m., and authorities feared they may have been trapped, said Manzoor-e-Elahi, government administrator for the region.
Fishermen continued the search as a salvage ship with a crane arrived to lift the ferry, which sank in about 200 feet of water. It was not immediately known when they would be able to raise the ship.
The ferry, which was traveling from Dhaka to the southern Bhola district, was "extremely overcrowded" because about 400 people boarded at the last minute after another ship canceled its voyage, Dhaka's Ittefaq newspaper reported.
But the exact number of passengers was unknown, because ferries in Bangladesh do not carry passenger lists, and many people buy tickets after boarding.
Hundreds of anxious relatives and survivors lined the shores or joined rescue teams searching for the missing. Authorities recovered two bodies, said Abu Rahat, a local police official.
Heavy monsoon rains have swollen many rivers in Bangladesh, where floods in the past two weeks have killed at least 89 people.
Frequent boating accidents, often blamed on overloading, faulty construction and disregard for safety measures, claim hundreds of lives every year in this nation of 130 million people.
In April, after protests by boat operators, Bangladesh officials withdrew a ban on night travel by ferries that the government imposed after a series of accidents.
In return for lifting the ban, ferry owners promised not to operate their vessels in rough weather and to follow safety regulations.
By Farid Hossain