A car bomb was set off by a suicide bomber at the gate of the Ambassador Hotel, after which other gunmen moved in.
“We can confirm that at least 10 civilians were killed in the blast while 25 others injured,” police officer Mohamed Farah told Xinhua.
Witnesses said they heard a huge blast followed by heavy gunfire from the hotel.
Local residents said troops were trying to rescue possible hostages in the hotel.
Al-Shabaab has claimed responsibility for the attack.
The Ambassador Hotel on the busy Makka Al-mukarram street is frequented by government officials.
Al-Shabaab, which has been battling the Somali government for years, stages periodic attacks in the country.