The small vessel, with 38 passengers on board, sank on Sunday while crossing the Runarayan river in Kolaghat, about 50 kilometres (30 miles) southwest of the state capital Kolkata.
"The ferry was overcrowded and leaking, and it overturned in the middle of the river," West Bengal police inspector general Surojit Kar Purakayastha told AFP.
"Rescuers have found 18 bodies swept away by the strong current. It´s sad that rescuers could not save a single child."
The vessel hit a bridge before it capsized, he said.
Eleven survivors were treated in hospital.
Bangladesh ferry sinks, five dead, many missing