Rescue crews had to deal with freezing temperatures and blizzard conditions when the crash happened about 0830 local time (0730 GMT) on Monday, near Halle, on the outskirts of Brussels.
The front carriages smashed into each other and were forced up into the air, damaging overhead power lines.
As of Monday evening, officials said 15 men and three women had been killed.
Passenger Sebastien Duckers, who hit his head when he was thrown forward in the crash, told the BBC: "Everyone was frightened and there was a lot of crying and screaming. We were all in a state of shock.
"There was broken glass scattered around the carriage."
He saw one person trapped under wreckage.
The cause of the crash was unknown, but the governor of Flemish Brabant province, Lodewijk De Witte, said one of the trains seemed to have missed a stop signal.
Belgium's track operator Infrabel said it was difficult to speculate on the cause at this stage.
RECENT EUROPE CRASHES
15 Feb 2010: Two commuter trains collide near Halle, Belgium, killing between 18 people
29 June 2009: Twenty-two people killed when a freight train carrying gas explodes and crashes into homes in Viareggio, Italy
June 2006: At least 30 people are killed and a dozen hurt in a metro train crash in the eastern Spanish city of Valencia
January 2006: At least 39 people die and 135 are injured when a train plunges down a ravine after its brakes fail in Podgorica, Montenegro
October 1999: Thirty-one people are killed when a high-speed passenger train approaching London's Paddington Station collides with a local commuter train
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.