Abdulkadir Abdirahman, director of Mogadishu’s Aamin ambulance service, earlier said his team had recovered 10 bodies and 40 wounded.
But Bashir Hassan Farah, another ambulance medic, later said he saw 20 dead bodies, most of them civilians.
According to sources, the fatalities included the son of the owner of the hotel, Abdirashid Ilqeyte, who was killed in a Shabaab attack on the establishment in November 2015.
The bombs destroyed parts of the hotel perimeter despite layered security, and several shops and other buildings nearby were destroyed.
Sources said several civilian minibuses and rickshaws that were passing by when the blast occurred, were destroyed and passengers killed and wounded.
“There was chaos after the blast. Some of the vehicles were buses, which caught fire. I could see people screaming as they fled the buses,” witness Fadumo Ali told AFP.
“This area is always dense and traffic jams are normal. This increased the casualties. Most of the dead and wounded were civilians,” added Awil Mohamed, another witness.
The Shabaab claimed responsibility.
“Armed members from the Shabab Al-Mujahideen carried (out) a complex attack targeting Sahafi hotel in Mogadishu where senior Somali government officials stay,” the militant group said in a statement quoted by a pro-Shabaab website.
“The attack was opened with a martyrdom car bomb blast and the fighters made their way into the building.”
The Shabaab were forced out of the capital by African Union troops in 2011.
But they still control parts of the countryside and attack government, military, and civilian targets, seemingly at will, in Mogadishu and towns in the region.