Cyclone Dineo killed seven people and affected 130,000 across southern Mozambique, according to a toll published late Thursday by the country's natural disasters agency.
"More than 20,000 homes" were destroyed by "winds and very strong rain" and the search for survivors is ongoing, the National Institute of Disaster Management said in a statement.
Dineo's impact was greatest in Inhambane, an area popular with tourists on Mozambique's south east coast. It was struck by winds of more than 100 kmh (62 mph), torrential rain and rough seas.
Mozambique, one of the world's poorest countries, is often battered by deadly flooding and storms.
In 2000, floods claimed at least 800 lives, and more than 100 were killed in 2015.
Scores have already died in the current rainy season, which began in October.
Dineo was downgraded to a tropical depression on Thursday and renamed "ex-Dineo. However, the South Africa Weather Service warned that it still posed the threat of heavy rainfall and flooding as it headed inland toward South Africa.
Kruger National Park, the country's premier safari destination, closed all its gravel roads and several camps on Thursday afternoon because of the storm. No major damage was reported.