The incident occurred in the morning at a level crossing on Koolachu Road, 15km northwest of Proserpine, according to a report by the Brisbane Times.
The coal train was travelling between the Abbot Point coal terminal and the Moorvale coal mine at Moranbah when it hit the semi-trailer at the level crossing.
Up to six coal bins were up-ended on impact, a Queensland rescue officer said.
The 55-year-old truck driver was reported to be seriously injured and Queensland Fire and Rescue told the Brisbane Times the 62-year-old train driver sustained a collarbone injury and a broken leg.
The cause of the collision is not yet known and Queensland Rail chief executive Lance Hockridge said the crash served as a stark reminder to people using level crossings.