A passenger train crashed into the back of a goods train at high speed at about 23:00 (21:00 GMT), said Belgium's rail infrastructure manager, Infrabel.
The two trains were on the same track, a spokesman for Infrabel said.
A local mayor said the passenger train was in a terrible state and it was fortunate there were no more victims.
Francis Dejon, major of Saint-Georges-Sur-Meuse province, said the front carriage of the passenger train had completely folded back on itself.
The train, with about 40 people on board, was travelling between Liege and Namur at about 90km/h (55mph) when it hit the goods train.
"Two of the six carriages derailed and are lying on the tracks," said a statement issued by Infrabel and national rail operator NMBS/SNCB.
Some of those injured had to be freed from the wreckage and are in critical condition, officials say.
Prime Minister Charles Michel tweeted his condolences to the families of the victims and wished the injured a speedy recovery.
Infrabel has begun an investigation into the crash.
There has been no comment as to why the trains were on the same track.
Infrabel said there had been what it called a "lightning incident" on the track earlier on Sunday and a tweet by SNCB had mentioned a signalling fault on the line at 21:30 local time on Sunday, although it said this had been cleared and services were normal.
"The investigation into the cause of the rail crash is fully under way. The lightning strike is a possible line of inquiry, but there are still safety systems which are supposed to come into place," spokesman Frederic Petit told public broadcaster VRT.
In February 2010, 18 people were killed when two passenger trains collided at Halle, south-west of the capital, Brussels.
Two people died and 14 were hurt in May 2013 when a train carrying toxic, flammable chemicals derailed and caused a major fire near the city of Ghent.
At least three people have been killed and nine injured in a train crash in the Belgian town of Hermalle-sous-Huy, near Liege, reports say.