The striker, who scored 15 Serie A goals last season, becomes Milan's 11th signing of the summer, joining on an initial loan deal with an obligation to buy.
Reports suggest the forward will cost Milan a total of €25million, made up of an initial €5m loan fee and €20m to make it permanent at the end of the season.
Big-spending Milan have already signed Leonardo Bonucci, Andre Silva, Andrea Conti, Hakan Calhanoglu, Mateo Musacchio, Ricardo Rodriguez, Lucas Biglia, Franck Kessie, Antonio Donnarumma and Fabio Borini this summer, as they attempt to challenge both at home and abroad.
Kalinic is set to wear the No.7 shirt at San Siro, and has signed a four-year contract.
The 29-year-old has had something of a nomadic career thus far, playing for Hajduk Split, Blackburn Rovers and Dnipro Dnipropetrovsk before joining Fiorentina. He has also played for Pula and Sibenik on loan.
He will compete with fellow new arrival Andre Silva for starting striker duties at Milan, with youngster Patrick Cutrone also still at the club.
Vincenzo Montella's side, who have also been linked with the likes of Pierre-Emerick Aubameyang, Andrea Belotti and Diego Costa, allowed Carlos Bacca to join Villarreal on loan with an option to buy last week to facilitate Kalinic's arrival.