The attackers blasted their way into the Hayat Hotel on Friday evening with two car bombs before opening fire. Somalia’s Al Shabaab insurgents claimed responsibility.
“So far we have confirmed 12 people, mostly civilians, died,” Mohammed, an intelligence officer who only gave one name, told Reuters.
The gunmen were holding an unknown number of hostages on the second floor of the building, Mohammed said, preventing authorities from using heavy weapons.
They had also bombed out the stairs to make it harder to access certain floors, he said.
As the siege entered its second day on Saturday evening, authorities had secured 95 per cent of the building, the state broadcaster Somali National Television said. The broadcaster did not give an updated number of casualties.
Those battling the militants inside the hotel include Gaashan, a paramilitary force specialising in counter-insurgency, a senior official told Reuters.
The detonations sent huge plumes of smoke over the busy junction on Friday night, and the sound of gunfire still crackled across the capital on Saturday evening.
Explosions were heard on Friday night as government forces tried to wrest control of the hotel back from the militants, witnesses said.
Large sections of the hotel were destroyed by the fighting, they said.
Friday’s attack was the first such major incident since President Hassan Sheikh Mohamud took office in May.
The Al Qaeda-linked Al Shabaab group claimed responsibility for the attack, according to a translation by the SITE Intelligence Group, which monitors jihadist group statements.
Al Shabaab has been fighting to topple the Somali government for more than 10 years. It wants to establish its own rule based on a strict interpretation of Islamic law.
The Hayat Hotel is a popular venue with lawmakers and other government officials. There was no immediate information on whether any of them had been caught up in the siege.