Gunfire could be heard on Saturday evening in Reuters footage, while small explosions were visible in the built-up areas surrounding the hotel.
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% 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 specializing in counter-insurgency, a former security official familiar with the force told Reuters.
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.