The powerful storm made landfall on Tuesday morning between the fishing port of Cox's Bazar and the city of Chittagong, with winds of up to 117 km/h (73mph), Bangladesh's Meteorological Department said.
Authorities have been moving more than one million people to shelters.
Parts of India and Myanmar are also expected to be affected.
It comes after heavy rains in Sri Lanka caused floods and landslides that killed at least 180 people.
Bangladesh's meteorological department had previously warned that low-lying areas of Cox's Bazar, Chittagong and many other coastal districts were "likely to be inundated" by a storm surge of 1.2m-1.5m (4-5 feet) above normal levels.
Hundreds of thousands of people had been evacuated to cyclone shelters, schools and government offices as of late Monday.
Fishing boats and trawlers have been advised to remain in shelters as well.
Severe weather tracking website Tropical Storm Risk forecasts that Cyclone Mora will move northwards past Chittagong over the next 12 hours, weakening as it moves further inland and downgrading from a Category 1 hurricane to a tropical storm.
The capital Dhaka saw rainy weather in the lead-up to the storm
No casualties have been reported, but Reuters said the cyclone has caused significant damage to refugee camps for Rohingya Muslims.
Community leader Shamsul Alam told the news agency that almost all 10,000 thatched huts in two camps were destroyed.
Large camps have been set up in Cox's Bazar for hundreds of thousands of ethnic Rohingya who have fled violence from neighbouring Myanmar.
The Bay of Bengal is prone to storms, and Bangladesh is often hit by severe weather during its rainy monsoon season from the middle to the end of the year.