The passenger train was heading towards the capital Copenhagen when a tarpaulin on a freight train hit it as it was going in the opposite direction, prompting it to brake suddenly, media reports say. Police said 16 people were injured.
Danish police said on Thursday the death toll from a train accident on Wednesday has risen to eight from six people.
Five women and three men were killed in the accident on abridge linking Denmark's two main islands. The bodies have yet to be identified, a spokesman told journalists.
At least 16 people were also injured on Wednesday after debris believed to be from a cargo train smashed into a passenger train in high winds on a bridge connecting two islands in Denmark.
Accident investigator Bo Haaning told reporters that part of the cargo train appeared to have been whipped off in strong winds, hitting a passenger train that was travelling in the opposite direction and causing it to brake suddenly.
Images from the scene showed the cargo train still standing on the tracks, the tarpaulin covers of its carriages torn open in places to reveal jumbled cases of beer, while the metal tracks appeared mangled in places.
An unidentified object can also be seen lying across the front of the passenger train on another track.
Rail operator DSB said six people died in the accident, which occurred around 7:30 am (0630 GMT) on the Great Belt Bridge connecting the islands of Zealand, where Copenhagen is located, and Funen. There were 131 passengers and three crew on board.
Police said none of the 16 hurt had life-threatening injuries.
Lars Mathiasan has more from Copenhagen.
Passenger Heidi Langberg Zumbusch had just boarded the train and taken her seat when the accident happened.
"There was a loud crash and the windows started smashing onto our heads. We flew down onto the floor, and then the train stopped," she told Danish public broadcaster DR.
"We were lucky. The people in the carriage in front of us were not so lucky," she said, adding that her co-passengers told her they saw the side of that carriage had been ripped off.
PM sends condolences
Prime Minister Lars Lokke Rasmussen sent condolences to the families of the victims.
"Regular Danes on their way to work or on their way home after the holidays have had their lives torn apart. It's deeply saddening. My thoughts are with the victims and their families," he said.
A Funen police spokesman told reporters he could not provide details of the accident, but added, "We know that an object hit the train."
Another passenger, 19-year-old Simon Voldsgaard Tondering, told daily Politiken that the train suddenly began to shake violently.
"I looked out the window and there were sparks flying up the side of the train. And then all the windows broke and shards of glass flew over us and panels broke loose. And then everything went black," he said.
Heavy winds were reported across Scandinavia overnight Tuesday and Wednesday, causing power outages, bridge closures and ferry cancellations.
The Great Belt link consists of a road suspension bridge and a railway tunnel between Zealand and the small island of Sprogo, with a bridge for both road and rail traffic between Sprogo and Funen.
The bridge was closed for several hours due to the accident, but car traffic later resumed while rail traffic remained shut in both directions.
The accident was the worst in Denmark in more than 30 years.