The Italy midfielder left Milan as a free agent at the end of the 2019-20 campaign, after six seasons with the Rossoneri.
His 30 goals in 155 Serie A games for Milan made him an attractive proposition for Fiorentina, who finished 10th in the disrupted championship.
Fiorentina posted on Twitter an image and video of Bonaventura, whose first name is often abbreviated to 'Jack', holding a purple and white club scarf outside a clinic used by the club for medical examinations.
Confirmation of the 31-year-old's transfer being completed was expected to follow.
Manchester United, Milan and Paris Saint-Germain are among the major European outfits who are due to farewell high-profile players when free agency comes into force on June 30.
Domestic leagues across the world appear increasingly likely to run beyond that deadline, meaning sides up and down the divisions could be forced to renegotiate deals beyond the typical expiry date.
It remains to be seen how governing bodies will approach the unfamiliar territory but Edinson Cavani, Mario Gotze and Zlatan Ibrahimovic will be watching closely like dozens more across Europe's top five leagues.
These are the stars and solid supporting cast members whose contract situations are worth monitoring in England, France, Germany, Italy and Spain.
LaLiga
Athletic Bilbao: Aritz Aduriz (retiring), Benat, Mikel San Jose
Atletico Madrid: Antonio Adan
Espanyol: Ander Iturraspe
Granada: Roberto Soldado
Real Valladolid: Hatem Ben Arfa
Sevilla: Ever Banega (joining Al Shabab at end of contract), Nolito
Valencia: Ezequiel Garay
Villarreal: Santi Cazorla
Premier League
Bournemouth: Ryan Fraser
Burnley: Joe Hart
Chelsea: Olivier Giroud, Pedro, Willian
Liverpool: Adam Lallana, Nathaniel Clyne
Manchester City: David Silva (confirmed he will leave at end of contract)
Manchester United: Nemanja Matic, Timothy Fosu-Mensah, Odion Ighalo (loan ends)
Newcastle United: Matty Longstaff
Tottenham: Jan Vertonghen, Japhet Tanganga
Serie A
Atalanta: Jose Luis Palomino
Hellas Verona: Fabio Borini
Inter: Ashley Young
Juventus: Gianluigi Buffon
Milan: Lucas Biglia, Giacomo Bonaventura, Zlatan Ibrahimovic
Napoli: Jose Callejon, Dries Mertens
Bundesliga
Bayer Leverkusen: Charles Aranguiz
Borussia Dortmund: Mario Gotze, Lukasz Piszczek
Hertha Berlin: Salomon Kalou
Schalke: Benjamin Stambouli
Wolfsburg: Robin Knoche
Ligue 1
Lille: Loic Remy
Monaco: Jemerson
Nice: Walter Benitez, Arnaud Lusamba
Paris Saint-Germain: Edinson Cavani, Thomas Meunier, Tanguy Kouassi, Layvin Kurzawa, Thiago Silva
Samu Castillejo put the Rossoneri ahead in the 26th minute but Lecce equalised through Marco Mancosu's penalty after Matteo Gabbia fouled fellow substitute Khouma Babacar.
However, Giacomo Bonaventura and Ante Rebic, who was sent off in the Coppa Italia semi-final exit at the hands of Juventus on June 12, struck in the next three minutes to put Milan out of reach.
Substitute Rafael Leao put the result beyond doubt in the 72nd minute as the Rossoneri returned to seventh after Hellas Verona and Parma moved above them at the weekend.
Milan found Lecce goalkeeper Gabriel in good form during the opening 25 minutes, the Brazilian denying Bonaventura, Castillejo and Theo Hernandez.
There was little Gabriel could do when Castillejo instinctively steered Hakan Calhanoglu's drilled, low cross into the bottom-left corner for his first Serie A goal since April 2019, though.
Lecce were allowed back into the game and Biagio Meccariello had a goal ruled out for a narrow offside.
Babacar replaced Gianluca Lapadula for the second half and he won a penalty off Gabbia - a first-half replacement for the injured Simon Kjaer - that Mancosu coolly converted in the 54th minute.
Milan regained their advantage just 63 seconds later when Gabriel parried Calhanoglu's shot straight to Bonaventura, who slotted home on the follow-up.
The Rossoneri increased their lead with a swift break from a Lecce corner in the 57th minute, Rebic latching onto Calhanoglu's pass and beating Gabriel.
Leao was sent on for Rebic in the 68th minute and headed home a cross from Andrea Conti to cap a resounding win for Milan.
What does it mean? Milan find goals from multiple men
Stefano Pioli's side were not at their best but four goals from as many scorers will be pleasing for the coach, more so in the absence of Zlatan Ibrahimovic.
It was the first time Milan have scored four in a single league game this season and they will hope to build on that with a run of tricky fixtures in the coming weeks.
Calhanoglu the creative hub
Despite playing primarily from the left, Calhanoglu was central to some of Milan's brightest moments. He assisted two goals and played an important role in the other, creating a total of five chances for his team-mates.
Gabbia struggles at the back
Milan looked shakier in defence following the introduction of Gabbia and his foul on Babacar gave Lecce a route back into the game.
What's next?
Milan host Roma on Sunday in a game that could prove pivotal in their quest for European qualification, while Lecce continue their battle against relegation with a trip to Juventus on Friday.