An attacker hauling explosives by bicycle into the centre of the Indian-administered Kashmiri capital died in the explosion.
"The bomb went off and his body was blown into smithereens," police chief K Rajindra Kumar said.
He added that six bystanders were injured, four of them seriously.
The blast took place hours before Kashmir's chief minister, Mufti Muhammad Sayyid, was due to lead a peace rally in the city.
On Wednesday, Indian troops in Kashmir shot and killed two Islamic fighters, including a commander in a separatist group, a police spokesman said.
A senior commander of Lashkar-e-Taiba, one of the two groups blamed by India for a December 2001 attack on its parliament, was killed in a gunbattle in Chewdara village, central Budgam district, he continued.
He identified the slain fighter as Bilal Habshe and said he was among the "most wanted militants" in Indian-administered Kashmir.
Another Kashmiri fighter was killed in a clash in the southern district of Anantnag, police said.
An explosion north of Srinagar on 30 December near an Indian army convoy wounded 40 soldiers and three civilians in the most visible attack since India and Pakistan entered a border truce in the divided province.
An Indian army soldier stands
guard beside a blast damaged bus
Nine other people have been killed in shootouts elsewhere in Indian-administered Kashmir in the past two days.
Hopes for peace in the Himalayan region have been spurred by improving relations between nuclear rivals India and Pakistan after they almost went to war in 2002 about Kashmir, which they both claim.
The two countries began a ceasefire along the Line of Control, a military line dividing the territory, on 26 November.
Officials say the insurgency which erupted in late 1989 has left more than 40,000 people dead. Separatists put the dead at between 80,000 and 100,000.
India accuses Pakistan of arming and training rebels, a charge that Islamabad denies.
Indian Prime Minister, Atal Behari Vajpayee, is due to make his first trip to Pakistan in four years for a seven-nation South Asian summit that starts on Sunday.