The Berlin truck attack suspect Anis Amri has been killed in a shootout with police in Milan, Italian interior minister Marco Minnitti said.
Minniti said that Amri was stopped on a routine police patrol by two officers at 3am in Milan's Sesto San Giovanni area after behaving suspiciously.
According to Italian police Amri pulled a gun from his backpack, shouted "God is greatest" in Arabic and opened fire, injuring an officer. A second policeman with only nine months' service returned fire, killing him, they add.
"The man without hesitating took his gun and he shot at the police officer who asked him for his ID papers," said Minnitti.
"The police officer immediately reacted, luckily he wasn't shot fatally and is in hospital recovering. The other officer reacted and the person who attacked our police officer was killed.
"The person who was killed, there is no doubt that he is Anis Amri, the suspect of the terrorist attack in Berlin."
Minnitti identified the officer injured as Christian Movio. "I had the chance to speak personally with Cristian Movio, and told him I hope he gets better soon.
"The boy is highly motivated, he is an extraordinary person. I thanked him for the professionalism he demonstrated. He and his colleague demonstrated."
Minnitti said the no-one else was injured in the exchange of fire.
"As soon as he [Amri] entered out country we identified him and neutralised him. This means our security is working really well.
"We have let the German federal prosecutor's office know. We have told their police force and authorities. These people in our police force are exceptional."
The officer who fired the shots that killed Amri was subsequently identified as 29-year-old rookie Luca Scata.
Fingerprints identified the man killed as the 24-year-old Tunisian police have been hunting in connection with Monday's attack on a Christmas market in the German capital that left 12 dead and 49 inured, a police source told Reuters.
German authorities earlier said Amri's fingerprints had been found in the truck used in the attack.
According to Italian media, Amri travelled by train to Turin, from where he travelled to Milan, which is about 120km away.
The Italian General Investigations and Special Operations Division said Anis Amri arrived in Italy from Chambery, France, and arrived in Milan by train around 1 am, reported Italian news agency Ansa.
It was reported on Thursday that he had been caught on CCTV at a mosque in Berlin four hours after the attack.
Amri previously lived in Italy, falsely claiming to be a minor to gain asylum, and was jailed for four years in the country in 2011 for an arson attack on a school in Catania, Sicily.
After his release, Italy attempted to expel him to Tunisia. Tunisia reportedly did not recognise his citizenship, and he was free to travel to Germany, where he is believed to have formed contacts with Islamic extremists.
German authorities had been criticised after it emerged that Amri had been monitored for allegedly planning a robbery to pay for guns, but the surveillance was dropped due to lack of evidence in September.
Authorities had issued a European arrest warrant for Amri, and placed a €100,000 bountry on his head, warning he was armed and violent.
*This article was ammended on 23/12 to remove the claim that Cristian Movio fired the shots that killed Anis Amri.