Both men have been taken to hospital but neither is in a “worrying” condition, the Corriere della Sera daily said.
The attack happened at around 8pm on Thursday evening after the officers stopped the man for a routine check. The attacker, a 20-year-old Italian, was previously known to police for drug-dealing.
When asked for his documents, the man pulled out a knife and attacked the officers, who were taken to hospital with injuries to the arm, collarbone, and neck, but were not in a serious condition.
Police said that the attacker had been arrested for attempted murder.
A spokesperson for Milan police told reporters that they did not believe the incident was related to terrorism.
Tensions have been high around Milan's central station in recent weeks after police ordered dozens of migrants to move on from the area, in an operation involving helicopters, sniffer dogs, and mounted police at the start of the month. Milan's mayor later distanced himself from the raid, saying “these methods are not our model”.
Lombardy's regional president, Roberto Maroni of the far-right Northern League, called for a planned pro-migrant march to be cancelled on Saturday “out of respect for the wounded officers”.