Both trains were traveling on the same track before they collided at 9:00 p.m. local time (2000 GMT) in Chalupki in southern Poland, state railway company PKP told Polish news station TVN24.
It was not immediately clear how one train heading from Warsaw to Krakow was on the same track with the other one bounding for the Polish capital from Przemysl, the company said. The first train was travelling on the wrong track.
"This is the worst catastrophe in years," Polish Prime Minister Donald Tusk told reporters upon arrival at the crash site.
Hundreds of fire -fighters and policemen rushed to the scene, where television footage showed one locomotive and two carriages were twisted and appeared to have been derailed.
"The wagons are in very bad shape and it's difficult to get to the people trapped inside," fire-fighter Grzegorz Widawski told the Polish PAP news agency.
Some 250 passengers were aboard the train bounding for Warsaw, while 120 passengers were traveling on the other train heading to Krakow, state railway spokesman said.
"The train was going at about 120 to 130 kilometers an hour. Suddenly I felt the train was making an emergency stop and then it crashed," a survivor said.
Local officials said the crash had killed 15 people and injured over 60 others. Ukrainian nationals were also among the 54 seriously injured, who had been sent to hospitals.
Saturday's accident has been the worst rail disaster in Poland since 1990, when 16 people were killed in a collision between two trains in the Warsaw suburb of Ursus.
The country's worst train accident occurred in 1980 in Otoczyn near the northern city of Torun, when 67 people died and 62 others were injured in a collision between a passenger and a freight train.