"The attack is in response to India's propaganda that the armed struggle has weakened in Kashmir," it said.
Panicked shoppers fled as armoured vehicles carrying police reinforcements arrived in the central Lal Chowk district of Srinagar, Ahmed said.
The injured civilians included a cameraman from a television news channel, Sajad Ahmed, another police officer, said.
The civilians were hospitalised with bullet and shrapnel wounds, he said.
Mohammed Syed Malik, a journalist in Srinagar, told Al Jazeera: "It is high-impact news. They couldn't have chosen a better target in Kashmir.
"It is the commercial heart of the Srinagar, the capital city of Kashmir, and the message will be loud and clear."
The last such attack in Indian controlled Kashmir occurred in 2006, but anti-Indian sentiment remains strong in the area.
Groups have been fighting for independence from India or a merging with its neighbour Pakistan since 1989, with almost 70,000 people being killed during the conflict.
Kashmir is divided between India and Pakistan, who both claim sovereignty over all the territory.