“Firefighters and divers are searching for more bodies,” local police official Shafiqul Islam told AFP, confirming that 24 deaths had been confirmed so far, most of them women and children.
The boat was packed with up to 50 pilgrims, police said.
They were travelling to a centuries-old temple when the vessel suddenly tipped over and sank in the middle of the Karotoa river near the town of Boda in northern Bangladesh.
Another police officer said up to 25 people were still missing.
Local media said at least 10 people had been rescued and sent to hospital.
Mobile phone footage aired by TV station Channel 24 showed the overcrowded boat suddenly flip over, spilling the passengers into the muddy brown river.
Dozens of people watching from the shore around 20 metres (yards) away started shouting and screaming. The weather was calm at the time.
Thousands of Hindus in Muslim-majority Bangladesh visit the Bodeshwari Temple every year.
Sunday marked the start of Durga Puja, the biggest Hindu festival in Bangladesh — and also eastern India — drawing large crowds at the temple.
The incident was the latest in a string of similar tragedies in the low-lying delta country which is criss-crossed by rivers.
Experts in the South Asian nation of 170 million people blame poor maintenance, lax safety standards at shipyards and overcrowding.
Last December more than 40 people perished when a packed three-storey ferry caught fire in the south of the country.
The blaze broke out early in the morning when most of the passengers were sleeping near the rural town of Jhakakathi, 250 kilometres (160 miles) south of the capital Dhaka.
A ferry sank in Dhaka in June last year after a collision with another vessel, killing at least 32 people.
And at least 78 people died in February 2015 when an overcrowded ship collided with a cargo vessel in a river west of the capital.