At least two people were killed when a truck was driven into pedestrians on the busiest street in the center of Stockholm, the Swedish Security Service said.
A large number of people were injured in the attack, which happened just before 3 p.m. local time on Friday. People were seen fleeing the area in panic.
Police in Stockholm have urged people to stay at home and avoid the city center. Parliament and the Stockholm subway were placed in lockdown. All train services in and out of Stockholm Central Station were halted and people were evacuated, the Swedish state railway company said.
"Sweden has been attacked," Swedish Prime Minister Stefan Lofven told reporters "Everything indicates this is a terror attack."
Lofven said the government was doing everything possible to help the security services. "We are thinking about the victims -- their families and friends -- and those who were injured," he said."
The Prime Minister was returning to the capital from the west of the country, his spokesman Erik Nises told CNN.
Local media reported that the truck used in the attack had been hijacked earlier. Security services launched an investigation into whether more than one people were involved in carrying out the attack.
"Plenty of people have been injured and some have died in the attack that just hit Stockholm," said Nina Odermalm Schei, head of press for the security service.
"We are still trying to determine who the attacker was, if the attack was carried by one or more people, and the number of injured."
She declined to say the attack was terrorism: "We are treating it as an attack, without specifications."
Carl Bildt, the former prime minister of Sweden, wrote on Twitter: "Steal a lorry or a car and then drive it into a crowd. That seems to be the latest terrorist method. Berlin. London. Now Stockholm."
Jens Stoltenberg, the Secretary General of NATO, said: "My heartfelt sympathies go to all those affected. We stand with the Swedish people in their grief."
The Swedish Security Service first received notification at 2.55 p.m. on Friday that a truck had been driven into a crowd on Drottninggatan in Stockholm, a press officer told CNN.
Intensive intelligence work was underway in order to identify the person or persons behind the attack, the spokesman said.
The US embassy in Stockholm told US citizens to avoid the area of the attack.
The attack joins a growing pattern of vehicles being used to launch attacks on pedestrians.
Last month, a man rammed into crowds on Westminster Bridge in London, killing three people before stabbing a policeman to death outside Parliament.
A fifth victim, Andreea Cristea, who was knocked off the bridge and into the River Thames below, died after her life-support was switched off on Thursday afternoon.
In July 2016, more than 80 people were killed and over 200 injured when a terrorist used a 20-ton truck to plough into crowds who had gathered in Nice to watch Bastille Day fireworks.
Last December, 12 people were killed and at least 48 people were wounded when a truck drove into a Christmas Market in Berlin.