No fewer than 12 people may have been killed, including gunmen and Malian soldiers, after suspected Islamist insurgents battled the army in the central Malian town of Sevare.
BBC reports that four United Nations workers survived the siege, but at least four other foreign nationals are feared to have died at and around Hotel Byblos.
One South African has been confirmed dead by officials.
The gunmen had retreated to the hotel after attacking a nearby army base.
No-one has claimed responsibility for the attack.
At least three gunmen are dead and seven have been arrested, while five Malian soldiers were said to have been killed in the attack.
The South African, who was killed in the attack worked for an aviation company used by the UN in Mali, a South African Foreign Ministry spokesman tweeted.
Another two South Africans, one Russian and one Ukrainian walked out alive from the hotel, after a pre-dawn raid by Malian paramilitaries.
The men are pilots and engineers contracted by Minusma, the United Nations mission in Mali.
A UN spokeswoman said the survivors had not been held hostage. They had managed to hide in the hotel during the siege.
“The Minusma contractors were never held hostage. The whole time they were inside the hotel, the gunmen did not know of their presence. They were hiding and we managed to keep in contact with them,” she told the BBC.