At least 28 people have been killed after a ferry carrying more than 100 people capsized in Bangladesh when it collided with another vessel, police say.

The death toll was expected to rise, with some passengers believed trapped inside the ferry and dozens missing, rescuers said on Thursday.

"Divers are trying to retrieve more bodies from the sunken ferry," Zahurul Islam Khan, a senior police official, told the Reuters news agency.

The ferry, ML Bipasha, sank after it hit the cargo vessel, which had already capsized a few days earlier, on the Meghna river at Rajapur, 130km northeast of the capital, Dhaka.

Around 40 people jumped off the ferry and swam to the shore after the accident.

"I woke up hearing a big bang and jumped immediately into the water, then swam ashore," a survivor told local media.

But the ferry, which was sailing from Bhairab [near the accident spot] to the northeast, sank with the rest of passengers after the collision, local officials said.

A rescue vessel picked up most survivors from the sinking ferry, but dozens of passengers were still missing.

Hundreds of people die in ferry accidents on low-lying Bangladesh's many rivers every year as operators often ignore safety rules that authorities fail to enforce.

Source: Agencies