Chiara Ambrosio, Milan Deputy Police Chief, told broadcaster SkyTG24 that people were still being pulled out of the wrecked carriages, "it was commuter hour, the train was full".
The Trenord train derailed near Pioltello Limito station, under 13 miles outside of Milan, at a switch track.
The incident happened between Pioltello and Segrate, 40km from Milan.
Numerous passengers were travelling to work in Italy's economic capital, or were students.
"There at present are three dead, five extremely injured and eight injured in 'code yellow, ' all of which in doctor's facility", an Interior Ministry in Milan representative told Reuters. The track may have given way under the weight of the front of the train, leading the wheels of the middle three carriages to come off the tracks. The cause was not immediately clear.
June 2009: Freight train carrying liquefied petroleum gas derails in Viareggio, causing a large explosion.
The company said via Twitter that the train had suffered a "technical problem". The most serious such event took place in July 2016, when two trains collided on a single-track section of the Bari-Barletta railway between the towns of Andria and Corato.