The attack took place at 2:55 p.m. local time (12.55 UTC) on Friday.
Swedish police said that no arrests have yet been made, after earlier reports of at least one arrest.
The head of Swedish police Dan Eliasson told a press conference in Stockholm later on Friday that the police are looking at several leads.
Shots were reportedly fired and people in the area fled the scene, Swedish broadcaster SVT reported.
The hijacked beertruck reportedly rammed into the upscale Ahlens department store on the busy Drottninggatan street, a major pedestrianized shopping area in the center of the city and above the city's main railway station.
A spokeswoman for transport company Spendrups told the French news agency AFP that the truck "had been stolen during a delivery to a restaurant."
The area was cordoned off and large numbers of police and emergency services were at the scene. All subway traffic was also closed down in the city and the parliament is in lockdown.
The police have told people to stay away from the city center after reports of shots being fired at two other locations in the city.
"There are deaths, and many injured," Nina Odermalm Schei, a spokeswoman for Swedish intelligence agency Sapo, told AFP, without giving a precise figure.
The Swedish intelligence agency said the death toll will likely rise.
"I saw at least three dead, but probably more," Swedish radio reporter Martin Svenningsen said.
Broadcaster SVT said at least five people were killed in the attack, but police could not confirm those reports.
People on the scene were swift to post video footage on social media.
"A vehicle has injured people on Drottninggatan," police spokeswoman Towe Hagg told the news agency Reuters.
"Police received a call from SOS Alarm that a person in a vehicle has injured other people on Drottninggatan," police wrote on Twitter.
A witness told the news agency Reuters that he had seen a number of body-like forms covered by blankets at the scene of the incident.
Jan Granroth told the daily "Aftonbladet" that "we stood inside a shoe store and heard something ... and then people started to scream."
"I looked out of the store and saw a big truck," he said.
Condolences have started to come in for the victims.
Sweden's King Carl XVI Gustaf said in a brief statement that the royal family had noted the attack "with dismay" and sent condolences to the families of the victims and injured. "We follow developments but as of now our thoughts go to the victims and their families," he said.
German Chancellor Angela Merkel's spokesman said her government's "thoughts are with the people in Stockholm, the injured, the
relatives, first responders and police."
Germany's Foreign Minister Sigmar Gabrieland his French colleague Jean-Marc Ayrault also expressed shock at the attack.
"That Sweden is now a victim of such a terrorist attack has also deeply shocked us," the two foreign ministers said at a joint press conference in Mali.
Germany and France experienced deadly truck attacks in 2016 that were claimed by the self-styled "Islamic State" (IS) group.
Comment: More details and video:
The videos are taken from above Sergelgatan street, and shows people running down Sergelgatan and crossing Haymarket and Sergel's Square, in the immediate vicinity of where the attack is reported to have taken place.
The people are running from the scene of the crash, which occurred at the Ahlens shopping center, on the corner of Drottninggatan and Master Samuelsgatan. The truck crashed into the perfume department of the Ahlens store.
Chadda's third and fourth videos show the same street, which is much quieter. Four armed police appear to be searching the street.
The image below was uploaded in the immediate aftermath - it is the first such image to appear online following the attack.
It is linked to a Twitter account geo-located to the Drottninggatan area of Stockholm. The uploader captions his Tweet saying that he had been sent the footage by a colleague.
The image is identified by the distinct Ahlens City mall sign - it is verified by the below screengrab taken from Google Earth.
The below image is corroborated by other geo-located user-generated content from the area on Instagram and by reports from local media outlets.
Comment: Updates from RT:
Swedish police have issued a warning to avoid Stockholm's city center. All Stockholm subway services have been shut down, according to TT news agency.
The city's central train station has also been evacuated. All trains to and from the station have been canceled for the rest of the day, Sweden's national rail company SJ announced.
All Swedish government offices have been closed following the attack, and all ministers are safe, a source told Reuters.
Security has also been tightened at other locations throughout the city.
Facebook has activated its safety check for people in the Stockholm area.
Update (April 8): The suspect has been arrested. He's been identified as a 39-year-old Uzbek national, a "marginal character" previously named in "security information" but not under recent investigation. Big surprise, another terrorist previously known to the security services... Sweden's notoriously tight-lipped authorities haven't released anything else: how he got into the country, his name, whether or not explosives were found in the hijacked truck, only that some sort of "technical device" that shouldn't have been there was there. Other reports identified this "something" as a bag of explosives that didn't detonate, but which did burn the suspect.
Update (April 9): Swedish police say the suspect is "known to have expressed sympathies with extremist organizations", including ISIS. No word on what exactly that means, yet. He had been denied permanent residency in June 2016 and was being sought for deportation after he went "underground" at that time. A second suspect has also been arrested in connection with the attack, and about 5 other people of interest remain in custody. Thousands have gathered in Stockholm to commemorate the victims of the attack.
Update (April 11): The suspect, Rakhmat Akilov, has admitted to committing "a terrorist crime", according to his lawyer Johan Eriksson. He will be kept in custody until at least May 11. The second person arrested is no longer considered a suspect, but is being kept in custody due to a "previous deportation order".