The cyclone made landfall at 9 p.m. local time (1530GMT) on Saturday in Indian West Bengal, near Sagar Island. The cyclone packed winds of up to 120 kilometers (75 miles) per hour, 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 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.
Ayesha Akter, an emergency official in Bangladesh, confirmed 12 people had died in the storm, adding that she feared the death toll will rise until Monday morning.
According to Bangladesh's Health Directorate report issued on Sunday night casualties have been reported from eight districts in the country's southern coastline.
Five others are missing after a fishing trawler sank in squally weather on Meghna river near the southern island of Bhola, district administrator Masud Alam Siddiqui told AFP.
The cyclone also damaged some 4,000 mostly mud and tin-built houses, disaster management secretary Shah Kamal told AFP.
In coastal Khulna, the worst-hit district in Bangladesh, trees swayed violently and were ripped from the ground in the fierce storm, blocking roads and hampering access to the area.
Some low-lying parts of the district were flooded, Disaster Management Minister Enamur Rahman told AFP.
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 told AFP.
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.
"We spent the night with another 400 people," said Ambia Begum, who arrived at a shelter in the port town of Mongla late 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," the 30-year-old mother of three told AFP.
Around 1,500 tourists were stranded on St. Martin's island off southeastern 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, officials told AFP.
Bangladesh's low-lying coast, home to 30 million people, and India's east are regularly battered by cyclones.
Hundreds of thousands of people living around the Bay of Bengal have been killed in cyclones in recent decades.
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.