Tropical Storm Dineo, which has been building along the east coast of southern Africa, made landfall in Mozambique on Wednesday evening, battering two coastal towns with heavy rain and wind at speeds of up to 160 kilometers per hour (100 mph).
In Inhambane, 500 kilometers north of the capital, Maputo, television footage showed roofs blown off houses, electricity pylons uprooted and trees sprawled across the streets.
There were, however, no immediate reports of deaths or injuries. The government's emergency services had yet to give an update on the situation.
One resident told Reuters the storm had also hit the town of Massinga, 75 kilometers from Inhambane.
Dineo was expected to develop into a Category 1 cyclone with winds at more than 130 kph, South Africa's National Forecasting Center said in a statement.
"This is still a formidable storm system which has the potential to cause much damage to coastal and inland infrastructure," the center said.
One of the world's poorest countries and also in the throes of a financial crisis, Mozambique is prone to flooding. It is especially vulnerable now because of a major drought last year; soils degraded or hardened by dry spells do not easily absorb water.
Mozambique's National Institute for Disaster Management urged residents in the coastal cities of Inhambane and Maxixe and surrounding villages to reinforce their roofs, to protect windows, and to stockpile food and water.
In January 2012, Mozambique was hit by two cyclones that killed 26 people and displaced more than 125,000, according to official data.
South African petrochemicals group Sasol said it had suspended drilling at its oil and gas field in Inhambane because of the approaching cyclone.