La foule se trouvait sur la voie ferrée pour assister à un spectacle pyrotechnique pendant les célébrations du jour de Dussehra, une fête très populaire dans le nord de l'Inde, ont expliqué des témoins.
"Il y avait beaucoup de bruit, au moment où les feux d'artifice étaient tirés, et elles ont été incapables d'entendre le train approcher", a raconté à l'AFP un responsable de la police présent sur place.
De son côté, le conducteur du train a déclaré à la police n'avoir vu la foule qu'à la dernière seconde, car il sortait d'un tournant et, dans le noir, sa vue était obscurcie par la fumée du feu d'artifices, selon les médias.
La compagnie de chemins de fer a affirmé n'avoir pas été prévenue de la tenue des festivités à cet endroit.
La police de son côté a dit avoir autorisé les célébrations qui se déroulent chaque année au même endroit, mais a précisé que les organisateurs n'avaient pas prévenu les pompiers ni demandé l'autorisation de la ville. Ces derniers, selon les médias, ont pris la fuite.
L'express Jalandhar-Amritsar a donc foncé dans une foule qui ne l'a pas entendu venir. La plupart des victimes étaient démembrées au-delà de toute possibilité d'identification, tandis que des parents parcouraient samedi les hôpitaux de la ville en cherchant leurs enfants.
L'accident a fait 59 morts et 90 blessés, a déclaré à l'AFP un haut responsable des services de secours, tandis que les médias faisaient état de 61 morts.
Le train "arrivait très rapidement", a expliqué sur une chaîne de télévision locale un témoin, qui a dit avoir vu un deuxième train par la suite heurter la foule. "Tout le monde courait de manière désordonnée et soudain un autre train a percuté des groupes de gens", a-t-il ajouté.
Selon la police, un premier train a d'abord réussi de justesse à éviter de percuter la foule, mais personne n'a entendu arriver l'express Jalandhar-Amritsar deux minutes plus tard.
Le ministre en chef du Pendjab, Amarinder Singh, a ordonné une enquête et annoncé le versement de 500.000 roupies (environ 6.000 euros) de dédommagement pour chaque victime.
Les premières funérailles de victimes ont été accompagnées samedi de manifestations de protestation, exigeant des sanctions contre les responsables.
"C'est une tragédie déchirante", a réagi sur Twitter le Premier ministre indien Narendra Modi, qui s'est engagé à consacrer 137 milliards de dollars (119 milliards d'euros) sur cinq ans pour moderniser le réseau ferroviaire en décrépitude.
Près de 15.000 personnes périssent dans des accidents ferroviaires chaque année en Inde, selon un rapport gouvernemental de 2012.