The blast hit the Khalifa Sahib Mosque in the west of the capital in the early afternoon, said Besmullah Habib, deputy spokesman for the interior ministry, who said the official confirmed death toll was 10.
The attack came as worshippers at the Sunni mosque gathered after Friday prayers for a congregation known as Zikr – an act of religious remembrance practised by some Muslims but seen as heretical by some hardline Sunni groups.
Sayed Fazil Agha, the head of the mosque, said someone they believed was a suicide bomber joined them in the ceremony and detonated explosives.
“Black smoke rose and spread everywhere, dead bodies were everywhere,” he told Reuters, adding that his nephews were among the dead.
“I myself survived, but lost my beloved ones,” he said.
Resident Mohammad Sabir said he had seen people being loaded into ambulances.
“The blast was very loud, I thought my eardrums were cracked,” he said.
Emergency Hospital in downtown Kabul said it was treating 21 patients wounded in the blast and two patients were dead on arrival. A nurse at another hospital, who declined to be identified, said it had received several wounded in critical condition. A health source said hospitals had so far received at least 30 bodies in total.
Scores of Afghan civilians have been killed in recent weeks in blasts, some of which have been claimed by Islamic State. The latest attack came on the last Friday in the month of Ramadan in which most Muslims fast, and before the religious holiday of Eid next week.
The Taliban rulers say they have secured the country since taking power in August and largely eliminated Islamic State’s local offshoot, but international officials and analysts say the risk of a resurgence in militancy remains.
Many of the attacks have targeted the Shi’ite minority, however Sunni mosques have also been attacked.
Bombs exploded aboard two passenger vans carrying Shi’ite Muslims in the northern city of Mazar-e-Sharif on Thursday, killing at least nine people. Last Friday, a blast tore through a Sunni mosque during Friday prayers in the city of Kunduz, killing 33.