Officials say among the victims were four foreigners who included two children who were shot in the head.
The Afghan capital has been hit by several attacks, but authorities appeared stunned that the militants had managed to get through the tight security at the Serena hotel — considered one of the safest places to stay in Kabul.
The shooting spree was the latest in a series of high-profile attacks as the Taliban and allied militants step up a campaign of violence in the weeks leading to April 5 national elections.
It also came on the heels of an uptick in bombings and shootings against foreigners in Kabul, something that had been relatively rare. Earlier this month, a Swedish journalist was shot on the street execution-style and a Lebanese restaurant popular with foreigners was attacked by a suicide bomber and gunmen in January.
The attacks show the Taliban are following through on their threat to use violence to disrupt next month's elections. The presidential vote will be the first democratic transfer of power since the 2001 U.S.-led invasion that ousted the Islamic militant movement. President Hamid Karzai is constitutionally barred from seeking a third term.
Taliban spokesman Zabihullah Mujahid claimed responsibility for the hotel attack, saying it shows that "our people, if they decide to attack any place, they can do it."
The restaurant was packed with Afghans celebrating the eve of the Persian New Year, Nowruz as well as foreigners who frequent the hotel.
Interior Ministry spokesman Sediq Sediqqi said most of the civilians were killed when two of the attackers walked into the restaurant and began shooting, while the others were shot to death as the gunmen made their way through the hotel. Police killed all four attackers after a three-hour standoff, with shooting resounding through the cordoned off streets outside.
He said the four foreigners killed were from Canada, New Zealand, Pakistan and India, but the New Zealand and Pakistani foreign ministries denied any of their citizens were among the dead.
There has been no word from Foreign Affairs in Ottawa or the Canadian Embassy in Kabul about the Canadian victim.
The Ministry of Foreign Affairs and Trade said in a statement that a woman from New Zealand was in the Serena at the time of the attack but was unharmed. Islamabad also said no Pakistani nationals were killed.
Afghan authorities have released a series of conflicting statements since the attack began to unfold on Thursday night, citing the need to focus on protecting the hotel guests and the chaos.
An Afghan journalist also was killed along with his wife and two children, French news agency Agence France Presse confirmed. It said the family's youngest son was undergoing emergency treatment after being badly wounded in the attack.
Sardar Ahmad, 40, also ran the Kabul Pressistan media company and joined AFP in 2003 to become the agency's senior reporter in Kabul. He covered all aspects of life, war and politics in his native Afghanistan, according to a statement tweeted by the agency.
The attackers reached the hotel at 8:30 p.m., evading security checks by hiding small pistols and ammunition in their socks and the soles of their shoes, Sediqqi said.
Afghan authorities initially said only two security guards had been wounded and the assault began at 6 p.m. but later changed their account.
The attackers appeared to be about 18 years old and all were killed, Sediqqi said at a press conference, displaying photos of the small pistols and ammunition the attackers used and shoes in which they hid their weapons.
In other violence, an explosion struck a Nowruz ceremony, killing three people in the southern province of Kandahar on Friday.
Police spokesman Zia Durani said militants threw an explosives-packed bottle that blew up when it landed on the ground, which he called a new tactic.
Those killed included the head of the provincial media centre chief and two policemen, Durani said, adding that seven other people were wounded.
Associated Press writer Mirwais Khan in Kandahar contributed to this report.
Also on HuffPost