The blast took place on the heavily guarded Srinagar-Jammu highway about 20km (12 miles) from the main city in Indian-administered Kashmir, Srinagar.
The Pakistan-based Islamist militant group Jaish-e-Mohammad (JeM) claimed responsibility for the attack, which is likely to ratchet up tensions between nuclear-armed arch rivals India and Pakistan.
New Delhi has long accused Islamabad of supporting militant groups.
"The sacrifices of our brave security personnel shall not go in vain," Indian Prime Minister Prime Minister Narendra Modi tweeted, calling the attack "despicable".
Attack on CRPF personnel in Pulwama is despicable. I strongly condemn this dastardly attack. The sacrifices of our brave security personnel shall not go in vain. The entire nation stands shoulder to shoulder with the families of the brave martyrs. May the injured recover quickly.Narendra Modi (@narendramodi) 14 février 2019
The attack saw explosives packed inside a van rip through buses in a convoy of 78 vehicles carrying some 2,500 members of the paramilitary Central Reserve Police Force (CRPF).
The attack could put Modi, who faces a general election due by May, under political pressure to act against the militants and Pakistan.
Decades of hostility
Thursday's assault surpasses that of 2016, the biggest in 14 years and which killed 19 soldiers in a brazen pre-dawn raid by militants on the Uri army camp.
India blamed militants in Pakistan for that attack and responded with surgical strikes.
New Delhi's foreign ministry, in a statement late Thursday, again blamed Islamabad.
The US ambassador to India, Ken Juster, condemned the attack, saying in a tweet that Washington stands alongside India in confronting terror and defeating it”.
Kashmir is a Muslim-majority region at the heart of decades of hostility between India and Pakistan. The neighbors both rule parts of the region while claiming the entire territory as theirs.