Kecelakaan ini terjadi ketika kereta api Senja Utama sedang berhenti sekitar 100 meter di jalur 3 sebelah barat Stasiun Petarukan, Pemalang, seharusnya kereta api Argo Bromo Anggrek melewati jalur 2 untuk menyalip kereta api Senja Utama, tetapi kereta api Argo Bromo Anggrek yang melaju dari arah yang sama menabrak bagian belakang kereta api Senja Utama.
Evakuasi
Proses evakuasi dipusatkan pada tiga gerbong terguling dan dua gerbong lainnya hancur dari kereta api Senja Utama, petugas evakuasi mengutamakan untuk menemukan korban yang masih hidup maupun mengevakuasi korban yang telah meninggal dunia. Korban luka dan meninggal di evakuasi ke Rumah Sakit Umum Daerah Dr. M Ashari, Pemalang dan RSU Santa Maria. Anehnya, lokomotif CC203 dengan nomor urut 40 (sekarang CC 203 02 03) yang menarik KA Argo Bromo Anggrek tidak mengalami kerusakan parah dan hanya mengalami kerusakan pada lampunya yang pecah dan catnya yang mengelupas, sedangkan lokomotif KA Senja Utama Semarang (CC 201 140/CC 201 04 03) nasib nya berbeda, lokomotif ini tetap utuh.[3][4][5]
Dalam Laporan akhir KNKT, disimpulkan bahwa KA 4 melanggar sinyal masuk J710 Stasiun Petarukan dari arah Stasiun Pemalang yang beraspek merah, sehingga menyeruduk KA 116. Padatnya jadwal dinasan serta jauhnya jarak tempat tinggal masinis dari dipo menyebabkan kelelahan sebelum dan saat bekerja. Selain itu, komunikasi antara PK dan masinis pada jam rawan mengantuk belum terjaga dengan baik, ditambah kurang informatifnya pemberitahuan terkait perubahan persilangan dan penyusulan. Faktor lain yang turut meningkatkan risiko kecelakaan adalah belum tersedianya perangkat pengamanan perjalanan kereta api untuk mencegah pelanggaran sinyal, serta terbatasnya layanan kesehatan dipo yang hanya beroperasi hingga pukul 20.00 sehingga kondisi kesehatan masinis pada dinasan malam tidak terpantau optimal.