The accident occurred yesterday on the line linking Namur and Liege in the east of the country, close to the municipality of Saint-Georges-sur-Meuse, with Belga quoting the mayor of the commune.
The passenger train slammed into the back of the goods train on the same track at high speed, Frederic Sacre, spokesman for Belgian railway infrastructure manager Infrabel, told AFP.
Around 40 passengers were on board, Infrabel and the National Railway Company of Belgium (SNCB) said in a joint statement.
"Two of the six carriages derailed and are lying on the tracks," the statement said. The front carriage was completely turned on its side, an AFP photographer at the scene said.
Belga reported that the collision had been "very violent," adding that fire and police services had been sent from Liege to the scene, with several passengers having to be extracted from the wreckage.
The circumstances of the accident were not immediately clear, with questions remaining over whether the passenger train was able to brake before the crash.
"The priority is to care for the victims," Infrabel and SNCB said, but added that information was already being analysed to determine how the crash took place. A crisis centre was set up at the scene of the accident.