The Serbia international has joined the Rossoneri on a free transfer from Fiorentina, and his contract also includes a one-year extension option until the end of the 2024-25 season.
Jovic arrives at San Siro following a troubled few years since bursting onto the scene with Eintracht Frankfurt, which earned him a €63m (£54m) move to Real Madrid in the summer of 2019.
However, the 25-year-old scored just three times in 51 matches for Los Blancos - who loaned him back to Frankfurt for the second half of the 2020-21 season - and he departed for Fiorentina on a free transfer in 2022.
Jovic turned his fortunes around with La Viola, netting a respectable 13 goals in 50 matches as Fiorentina reached the finals of the Coppa Italia and Europa Conference League, and his six strikes in the latter tournament was only bettered by Arthur Cabral and Zeki Amdouni's seven apiece.
The Serbia international will wear the number 15 jersey at San Siro and becomes Milan's 10th signing of the summer after Christian Pulisic, Noah Okafor, Yunus Musah, Ruben Loftus-Cheek, Tijjani Reijnders, Marco Sportiello, Samuel Chukwueze, Marco Pellegrino and Luka Romero.
Jovic's arrival is likely to see Divock Origi given the final green light to leave the club, as Nottingham Forest try to conclude a loan deal for the Belgian striker.