Twenty people have died and more than two million others have spent a night huddled in storm shelters after Cyclone Bulbul hit the coasts of India and Bangladesh with fierce gales and torrential rain, officials said on Sunday.

The cyclone packed winds of up to 120km/h (75mph) when it hit late on Saturday, forcing the closure of ports and airports in both countries.

Ten people were killed in India’s West Bengal state, the Press Trust of India (PTI) reported, including two after uprooted trees fell on their homes and another after being struck by falling branches in Kolkata. Two others died in nearby Odisha state, PTI reported.

In Bangladesh, eight people were killed – five by falling trees – and at least 20 people were injured.

Five others are missing after a fishing trawler sank in bad weather on the Meghna river near the southern island of Bhola, district administrator Masud Alam Siddiqui said.

The cyclone also damaged some 4,000 mostly mud and tin-built houses, disaster management secretary Shah Kamal said.

In coastal Khulna, the worst-hit district in Bangladesh, trees were ripped from the ground, blocking roads and hampering access to the area. Some low-lying parts of the district were flooded, disaster management minister Enamur Rahman said.

Authorities said the cyclone was weakening as it moved inland. “It has turned into a deep depression, causing heavy rainfall,” Bangladesh weather bureau deputy chief Ayesha Khatun said.

Bulbul hit the coast at the Sundarbans, the world’s largest mangrove forest which straddles Bangladesh and India, and is home to endangered species including Bengal tigers and Irrawaddy dolphins. The mangroves shielded the coast from the storm’s full impact, Khatun said.

Some 2.1 million people across Bangladesh were relocated to cyclone shelters.

Troops were sent to coastal districts while tens of thousands of volunteers went door-to-door and used loudspeakers to urge people to evacuate their villages.

A woman clears debris from her home damaged by Cyclone Bulbul in Bakkhali, West Bengal. Photograph: Dibyangshu Sarkar/AFP via Getty Images

“We spent the night with another 400 people,” said Ambia Begum, who arrived at a shelter in the port town of Mongla late on Saturday along with her family. “I am worried about my cattle and the straw roof of my house. I could not bring them here. Allah knows what is happening there.”

About 1,500 tourists were stranded on St Martin’s island off south-eastern Bangladesh after boat services were cancelled.

In India, nearly 120,000 people who were evacuated started to return home as the cyclone weakened, authorities said. “The storm has left a trail of destruction as it’s crossed the coastline of West Bengal,” the state’s urban development minister Firhad Hakim said.

In Odisha, crops in coastal regions were extensively damaged by the cyclone.

Bangladesh’s low-lying coast, home to 30 million people, and India’s east are regularly battered by cyclones. While the frequency and intensity of the storms have increased, partly due to climate change, the death tolls have come down because of faster evacuations and the building of thousands of coastal shelters.

Cyclone Fani was the most powerful storm to hit the area in years when it struck in May, killing 12 people.