At least two blasts struck a large ceremony Thursday attended by Afghanistan chief executive Abdullah Abdullah and other leading government officials, killing three people and injuring 22 others.
The Kabul attack represents a major security breach and marks a resumption of violence in the capital after weeks of calm amid ongoing peace talks between the US and Taliban in Doha.
"Stay calm, the area of the blast is far from us," said former lower house speaker Mohammad Younus Qanooni from the stage during a live broadcast of the outdoor event.
But moments after the announcement, another explosion and gunfire could be heard that sent people running.
A second unidentified voice then addressed the screaming crowd, saying: "I request my countrymen to stay calm. The mortar attack is far from the gathering."
The blasts happened during a ceremony marking the 24th anniversary of the death of Shiite Hazara leader Abdul Ali Mazari that was attended by many of the country's political elite, including Abdullah and former president Hamid Karzai.
"Today around 12 noon ... mortars were fired on the gathering of Abdul Ali Mazari," Nasrat Rahimi, acting interior ministry spokesman, said in a statement sent to journalists.
"The main suspect behind the attack has been arrested by the police and some others who were behind the attack were identified ... and will be detained," he added, saying the mortars landed outside the actual event.
"Twenty-two wounded -- three children and one woman -- and three dead have been taken to hospitals," tweeted Wahidullah Mayar, spokesman for the health ministry.
Presidential candidate Abdul Latif Pedram was among the injured, according to his official Facebook page, but details on the extent of his injuries were not given.
"Abdul Latif Pedram has been injured in Kabul attack, but is in stable condition," said the statement.
Foreign Minister Salahuddin Rabbani -- who was also at the scene -- later added that "terrorists launched rocket attacks on commemoration ceremony", and said he had escaped safely.
Mortar fire is commonly referred to as "rockets" by Afghan officials.
No group has claimed responsibility for the blasts.
"This was the most horrid and unforgivable attack on civilians by a merciless enemy," tweeted presidential candidate and former national security adviser Mohammad Haneef Atmar.
He added that eight of his security guards were injured in the attack.
"How these attackers managed to get into this Shiite neighbourhood, pass through all the security cordons, and then attack such an important gathering is indicative of a major security and intelligence failure on the part of the Afghan government," security analyst Atiqullah Amarkhail told AFP.
The incident comes as US and Taliban negotiations continue to hold peace talks in Qatar aimed at ending the nearly 18-year conflict.
The last major attack in Kabul occurred in January when the Taliban-claimed responsibility for a car bomb that struck the heavily fortified Green Village foreign compound.
Heavy snowfall across large swathes of Afghanistan has led to a reduction in violence this winter, but warmer weather in the country's south will likely spark an increase in bloodshed with the arrival of the spring fighting season.
Analysts have warned that the Taliban are likely to ramp up attacks in the coming months as they seek to maintain momentum on the battlefield and leverage at the negotiating table.
On Wednesday at least 16 people were killed in a suicide attack on a construction company in eastern Afghanistan's Jalalabad city.
The hours-long attack began early Wednesday when two suicide bombers detonated explosives at the gate of the compound, allowing three others to enter the area where they went on a killing spree.
No group has claimed responsibility for the attack, but both the Islamic State group and the Taliban are active near the city, in Nangarhar province.
Afghanistan has been enmeshed in nearly constant conflict since the Soviet invasion of 1979, which was followed by civil war, the Taliban regime, and the US invasion in late 2001.