NEW DELHI—Militants armed with assault rifles and grenades opened fire on an Indian army camp and killed eight soldiers—one in a series of violent attacks in the disputed region of Kashmir on Friday.

India’s defense ministry said the assault, on an artillery base outside Srinagar in the state of Jammu and Kashmir, began at about 3 a.m. local time. After a six-hour battle, the ministry said, six militants were killed.

Kashmir,...