The Taliban claimed responsibility for the attack, which left windows blown from dozens of shops and survivors staggering around the bloodied streets in the heavily fortified central diplomatic area.
Most of the casualties were civilians, Interior Ministry spokesman Zemarai Bashary said.
President Hamid Karzai called the perpetrators "barbaric" and said: "This is a terrorist attack, and an obvious attack on defenceless Afghan civilians."
Indian Foreign Secretary Nirupama Rao said in New Delhi her country's fortress-like embassy was "obviously" the intended target.
Ms Rao said no Indians had been killed, but three members of the Indo-Tibetan Border Police Force who had been guarding the embassy had received shrapnel injuries.
A similar suicide attack on the Indian embassy in Kabul in July last year killed 60 people and was blamed on Taliban militants linked to Pakistan's intelligence agencies, sending tensions between New Delhi and Islamabad soaring.
That attack, which remains Kabul's deadliest yet, led to new security measures such as concrete blast barriers at the embassy, which Ms Rao said had limited the impact of yesterday's explosion.
The bomber detonated his explosives-laden car near the corner of the embassy compound at about 8.30am local time (3pm AEDT).
The blast left a massive crater in the road. The wreckage of a car appeared to have been blown 20m across the road, while the windows of about 100 shops were blown out.
The road was littered with debris, burnt-out vehicles and body parts.
Bloodied scraps of clothing, including the pale blue burkas worn by many women, were scattered across the area.
Fire engines and ambulances raced to the scene. A white armoured Toyota Land Cruiser with the pale-blue UN insignia painted on the side lay damaged in the road. Three civilian cars were also hit.
It is the fifth blast to hit the Afghan capital since mid-August, just before the presidential elections on August 20, the target of a campaign of violence and intimidation by Taliban rebels.
Source: The Australian