Według informacji "Rynku Kolejowego" pierwszym elementem w istotnym ciągu zdarzeń, które nastąpiły przed katastrofą, było włączenie blokady liniowej przez dyżurną posterunku Sprowa dla jazdy TLK Brzechwa po torze nr 1 w kierunku posterunku Starzyny. Był to początek przygotowania szlaku dla pociągu, który w tym momencie dojeżdżał dopiero do poprzedniej stacji - Kozłów. Dyżurny z posterunku Starzyny udzielił pozwolenia na jazdę TLK Brzechwa po torze nr 1.
W chwili gdy TLK Brzechwa wyjeżdżał ze stacji Kozłów, nastąpiło włączenie blokady liniowej przez dyżurnego Starzyny dla jazdy pociągu IR Matejko po torze nr 2 w kierunku posterunku Sprowa. Również dyżurna posterunku Sprowa udzieliła bezzwłocznie koniecznego pozwolenia. Jednak z powodu braku kontroli nad rozjazdem w Starzynach, pociąg IR Matejko czekał około 7 minut przed sygnalizatorem umieszczonym przed rozjazdami w Starzynach.
IR Matejko wjeżdża na niewłaściwy tor
W międzyczasie dyżurna ze Sprowa rozpoczęła układanie drogi spod semafora A do semafora C, czyli odpowiednie ustawienie zwrotnic. Następnie wyświetliła sygnał zezwalający na wjazd na rozjazdy (zielone światło).
Około dwóch minut później, nastąpiło najważniejsze wydarzenie - pociąg IR Matejko z Warszawy do Krakowa wjechał na niewłaściwy (przeciwny do zasadniczego) tor na podstawie sygnału zastępczego. Ze względu na to, że po modernizacji szlak został wyposażony w półsamoczynną blokadę ze wskazaniem zajętości, urządzenia wykazały zajęcie torów, przez co semafor wjazdowy przed posterunkiem Sprowa, przygotowany już dla pociągu TLK, samoczynnie zmienił wskazanie na sygnał "stój" (czerwone światło).
Stąd wziął się sygnał zastępczy w Sprowie
W reakcji na niemożliwość zmiany wskazania sygnalizatora na zielone światło, dyżurna ze Sprowa przygotowała na sygnalizatorze sygnał zastępczy. Dodaje on do czerwonego świata pulsujący biały sygnał na dole semafora, co pozwala maszyniście wjechać za sygnalizator z prędkością nieprzekraczającą 40 km/h. Po opuszczeniu strefy rozjazdów może on przyspieszyć do maksymalnej prędkości. Pociąg TLK Brzechwa z Przemyśla do Warszawy przejechał w związku z tym przez obszar posterunku Sprowa na sygnale zastępczym, podobnie jak miało to miejsce z IR Matejko w Starzynach. Następnie dyżurna przestawiła rozjazdy na ustawienie do jazdy na wprost i wyświetliła sygnał zezwalający na jazdę po torze nr 2 dla pociągu IR.
O godzinie 20:57 pociąg IR Matejko, jadący po niewłaściwym torze z prędkością 50-60 km/h zderzył się czołowo z pociągiem TLK Brzechwa, który jechał z prędkością 95 km/h. Zgłoszenie o wypadku straż pożarna przyjęła o godzinie 21:16. Rozpoczęła się akcja ratowania ofiar katastrofy.
Przedstawione powyżej fakty oznaczają, że urządzenia sterowania ruchem w Sprowie działały prawidłowo. Wiadomo jednak, że na posterunku w Starzynach doszło do usterki rozjazdu, która uniemożliwiała jego zdalne ustawienie. Według prokuratury, sterowanie ręczne rozjazdem było możliwe, jednak nie zostało użyte.
Najważniejszego wciąż nie wiemy
W sprawie katastrofy w Szczekocinach wciąż niewyjaśnione pozostaje zachowanie dyżurnego ruchu ze Starzyn, który obecnie przebywa w szpitalu psychiatrycznym. Jeżeli założyć, że maszynista IR Matejko był świadomy, że jechał po niewłaściwym torze (według ekspertów jest to pewne) to wciąż nie wiadomo, dlaczego mimo to kontynuował jazdę. Nie wiadomo, czy otrzymał on sygnał W24, zezwalający na jazdę po torze przeciwnym do zasadniczego.
W ciągu ostatnich trzech miesięcy doszło do 15 usterek na posterunku Starzyny i 5 na posterunku Sprowa. Potwierdziły się informacje, że dzień przed katastrofą z niewyjaśnionych jeszcze przyczyn pociąg spółki PKP Intercity relacji Kraków - Gdynia wjechał na niewłaściwy tor i - niezgodnie z przepisami - został wycofany poza sygnalizator.