The 24-year-old centre-back has been at the club since leaving Partizan Belgrade in 2017 and his contract was due to expire in June 2023.
He was promised last year that he could leave this summer if the right offer came along, and a price-tag set at roughly €20m.
However, with Inter and Juventus looking elsewhere first and delayed by not selling other players such as Milan Skriniar, Milenkovic became convinced to extend his stay at Fiorentina instead.
“Talking to the club, I realised there is great ambition, the club is growing continuously, and it was very important for me that the coach was confirmed in his role,” said Milenkovic in a press conference.
“I also thank the fans, who gave me so much affection over the years, especially recently. I feel loved here. The directors, President did great work to keep me here and give me the opportunity to continue my career here. I am very happy with the choices I made.
“I took some time to think carefully and I am very happy with my decision.”
Inspired by the growing project under coach Vincenzo Italiano, the Serbia international has now signed on until June 2027.
“Nikola has the Fiorentina DNA,” said director Joe Barone at the press conference.
The defender put pen to paper on the desk in the press conference room before taking questions from the media.