Indian forces killed three suspected militants during a fierce overnight gunfight in India-held Kashmir, the Indian army said Thursday.

Soldiers and special police counter-insurgency forces surrounded a residential area where they suspected armed 'militants' were hiding out, triggering a fierce exchange of fire.

One police officer said scores of residents came out of their houses shouting slogans demanding freedom from Indian rule and throwing stones at the soldiers to try to help the suspected militants escape.

“Three terrorists were killed and three weapons recovered from the site,” army spokesman, Colonel Rajesh Kalia said.

Witnesses said the army blew up the house where the suspected militants were hiding in Kakapora, around 30 kilometres south of the main city of Srinagar.

On Wednesday morning soldiers killed two suspected militants during a firefight in the northern Sopore area. Police said they were members of Kashmir's largest rebel group Hizbul Mujahideen.

Separatists groups have since 1989 been fighting roughly 500,000 Indian soldiers deployed in the region, demanding independence or a merger with Pakistan.

The fighting has left tens of thousands dead, most of them civilians.

Dozens of local youths have joined the militant ranks since last year when the killing of a popular separatist commander Burhan Muzaffar Wani sparked wide scale anti-India protests that left more than 100 civilians dead and thousands wounded.

Public opposition to Indian rule remains deep and is now principally expressed through street protests marked by youths hurling stones at government forces.