Cars were hit with debris, including a tyre that lodged on a windscreen, and two toddlers were caught up in the chaos in Perth.
A truck and a train believed to be carrying about 100 people have collided at a Perth level crossing, sending three people to hospital, hitting nearby vehicles with flying debris and causing commuter chaos.
Aerial footage from the scene in Guildford showed the extent of the damage following the crash about 4pm (6pm AEST).
The train's front window was smashed, the truck and trailer lying on its side and the bobcat it had been carrying metres away on the train tracks.
READ MORE: Teen's alleged hijack attempt 'politically motivated'
Cars were hit with debris, including a tyre that lodged on a windscreen.
Two females and a teenager were taken to separate hospitals and two toddlers and their mother were checked over at the scene but given the all clear.
9News understands about 100 people were on the train at the time and some were forced to wait an hour to get off, many of them wrapped in blankets.
Shaken passengers said they heard a high-pitched noise and the train shaking.
"He was holding on to me, and I was just like, I was scared, I was shocked," one passenger said.
Another said he was woken up and bounced off his seat.
READ MORE: Hundreds of thousands of Aussies stung as tourist hotspot overhauls visa rules
A significant police and emergency services presence remained into the night as a crane moved in to begin trying to remove the truck from the tracks.
The Midland line was shut down between Midland and Bassendean, causing delays on the Ellenbrook, Airport and Fremantle lines.
Replacement buses were being organised between Midland and Bassendean but long delays were expected.
NEVER MISS A STORY: Get your breaking news and exclusive stories first by following us across all platforms.
- Download the 9NEWS App here via Apple and Google Play
- Make 9News your preferred source on Google by ticking this box here
- Sign up to our breaking newsletter here

