"I am in touch with Indian Ambassador in Sweden. The attack was very close to Indian Embassy. Our embassy officials are safe," said Foreign Minister Sushma Swaraj.

"India stands firmly with the people of Sweden in this hour of grief," Prime Minister Narendra Modi tweeted condemning the attack.

Swedish Prime Minister Stefan Lofven described the incident as a "terror attack".

The attack took place at the corner of the Ahlens department store and Drottninggatan, the city's biggest pedestrian street, above-ground from Stockholm's central subway station.

The Stockholm metro which was completely shut down, with the attack taking place at the city's T-Centralen station, through which all the city's lines pass, has been cleared to restart. But all bus traffic in the centre of the city remains at a standstill, the public transport authority said.

Thick smoke bellowing out could be seen, while video images showed an area blocked off by police and crowds gathering around the police cordon. Helicopters could be heard hovering in the sky over central Stockholm.

Large public buildings were evacuated and closed down. Armed guards patrolled outside the government offices.

"Police received a call from SOS Alarm that a person in a vehicle has injured other people on Drottninggatan," police wrote on Twitter.

Swedish intelligence agency Sapo said it was a deliberate attack. "There are deaths, and many injured," Sapo spokeswoman Nina Odermalm Schei told AFP.