The Taliban claimed responsibility for the attack, the deadliest in the Afghan capital since the hardline Islamist movement was ousted from power for harbouring al Qaeda leaders in the wake of the Sept. 11, 2001 attacks on the United States.
A suicide bomber dressed in army uniform got on the bus carrying Afghan National Army personnel to work, the Defence Ministry said. The blast split the bus into two and shattered shop windows in a central district of the capital.
Police and soldiers piled bodies onto army vehicles. Residents also helped pick up pieces of flesh and put them into plastic bags. A boy stood crying next to a police cordon saying he was looking for his father who sold cigarettes from a hand-cart next to the site of the bomb. "The explosion happened just after a group of Afghan National Army soldiers got onto the bus," said witness Mohammad Zaher who had cuts on his forehead from flying glass.
"I heard a big bang. I saw the bus destroyed," said witness Ahmad Waleed. "I saw several bodies of military personnel being carried from the site alongside bodies of some workers who were sitting at the roundabout. The army and police arrived very late."
President Hamid Karzai condemned the blast, which he said killed 28 soldiers and two civilians.
"It was an act of extreme cowardice on the part of those that committed it. No doubt someone who did this was against people, against humanity, definitely against Islam," Karzai said at his heavily fortified palace.
"It is something we condemn in the strongest possible terms and something that would indicate to us that the war against terrorism must go on with much strong vigour," he said, speaking in English.
Taliban insurgents have largely shied away from large-scale conventional attacks on foreign and Afghan forces since suffering heavy casualties in pitched battles last year.
Instead, the rebels have resorted to suicide and roadside bomb attacks aimed at convincing ordinary Afghans their government and its Western backers are unable to provide security.
A suicide bomb attack in June on a bus carrying police officers in Kabul killed 24.