Five gunmen in army uniforms who stormed Kabul’s Intercontinental Hotel killed more than 30 people and wounded many more although the final toll of dead and wounded may still be higher.
The attack came late on Saturday and the militants battled Afghan Special Forces through the night before they were overcome.
Wahid Majroh, a spokesman for the ministry of public health, said 19 bodies had been brought into city hospitals, with six identified as foreigners.
However, a senior Afghan security official, who spoke on condition of anonymity, said the death toll was over 30 and might climb higher. The dead included hotel staff and guests as well as members of the security forces who fought the attackers.
All five attackers were also killed, interior ministry spokesman Najib Danesh said on Sunday.
More than 150 guests were able to flee as parts of the building caught fire, with some shimmying down sheets tied together and dropped from upper-floor windows and others rescued by Afghan forces.
Local airline Kam Air said around 40 of its pilots and air crew, many of whom are foreigners, were staying in the hotel and as many as 10 had been killed. Local media reports said the dead included Venezuelans and Ukrainians.
The Taliban, which attacked the same hotel in 2011, claimed responsibility for the attack, its spokesman Zabihullah Mujahid said in a statement.
As day broke on Sunday, thick clouds of black smoke poured from the hotel, one of two main luxury hotels in the city.
Several armoured US military vehicles with heavy machine guns could be seen close to the hotel along with Afghan police units as Special Forces manoeuvred around the site.
Hotel manager Ahmad Haris Nayab said the attackers had got into the main part of the hotel through a kitchen before going through the hotel, with many guests trapped in their rooms.
The senior security official said that the attackers had moved directly from the first floor to the fourth and fifth floors, suggesting the attack had been carefully prepared, possibly with inside help.