The six-carriage Trenord train was carrying around 350 passengers when it derailed at around 7:00 am local time at Seggiano di Pioltello in Milan’s northeastern suburbs.
Firefighters, police and rescue workers arrived at the scene within 20 minutes and spent hours trying to free passengers from the wreckage.
Two of the victims were identified as Pierangela Tadini, a 51-year-old woman originally from Caravaggio who resided in Vanzago, and Giuseppina Pirri, a 39-year-old woman from Cernusco sul Naviglio.
Authorities are still working to identify the third victim, a 61-year-old woman.
The driver of the train said in a statement that he slammed on the brakes as soon as he heard vibrations, but that “it was too late” and the train had already derailed.
The train's black box has been seized by police, and authorities are investigating the scene to determine the cause of the incident.
An official from Rete Ferroviaria Italiana (RFI), which manages the rail network, said a 23-centimetre fracture in the track could have been a factor in the accident, but that it was still working to establish whether that was “the cause or a consequence of the incident”.
“The Italian rail system is certainly one of the safest in the world but we want the truth, and that it be established swiftly, because it is unacceptable to die on your way to work,” Italian Transport Minister Graziano Delrio said.
Mr Delrio added that investments in rail safety and security in Italy had risen 34 per cent in the last three years.
Despite this measure, the incident is the latest in a number of fatal train accidents in Italy.
In 2009, a train carrying petroleum derailed and caused an explosion in Tuscany, claiming 32 lives.
In 2016, two trains collided in Puglia, killing 23 people.
With ANSA