The 23-year-old arrived at Stadio Olimpico with high expectations from Inter Milan in 2018, but he has largely failed to live up to his potential over the past four and a half years.
Zaniolo's development was hampered by a pair of cruciate ligament ruptures in 2020, although he still recovered in time to score the winning goal against Feyenoord in the 2021-22 Europa Conference League final.
Zaniolo remained a regular starter for the Giallorossi in the first half of the 2022-23 season, but Jose Mourinho revealed in January that the Italy international wanted to leave, and several Premier League sides were linked with a move.
Tottenham Hotspur, Newcastle United and Bournemouth were all said to be keeping tabs on his future, but Mourinho admitted that Zaniolo would "unfortunately" be staying beyond the January 31 deadline.
"Unfortunately, Zaniolo seems to be staying. I say that because he told all of us that he doesn't want to play or train for Roma," Mourinho said prior to their Serie A win over Spezia on January 22.
"I said I thought he would stay and now I say unfortunately it looks like that's the case. I can't tell you the details, but he is not available tomorrow. All that matters now is that we are focused on tomorrow's game with the players who want to do well for this club."
However, the transfer window in Turkey did not shut until February 8, and Roma confirmed on Wednesday night that Zaniolo had signed for Galatasaray on a permanent basis.
The Italian has joined on a four-year contract for an initial fee of €16.5m (£14.6m), and his deal is also said to include a €35m (£31m) release clause.
Roma director Tiago Pinto addressed the media in a press conference on Wednesday night, during which he admitted that his side could have received a higher fee for Zaniolo.
Pinto referenced a more lucrative offer for the 23-year-old that was tabled in January - believed to have been a €30m (£26.6m) bid from Bournemouth - but he was nevertheless pleased to reach a solution which benefited both parties.
"As for how the Zaniolo talks panned out, you know me, I don't shy away from my responsibilities. If you're asking me if I thought we could get more for Zaniolo, then the answer is yes," Pinto said.
"That much is clear since a week ago we received an offer that was considerably higher. But with everything that's happened, this is the solution we ended up with, and in any case it is not bad for any of the parties.
"If you ask me if I'm really happy, the answer is that I'll never be completely happy. If you ask me if we could have done better, I have my doubts about that."
Zaniolo leaves Roma having scored 24 goals and set up 18 more in 128 games for the Italian giants, and he could make his debut for Galatasaray away to Gaziantep FK on February 18, following the postponement of the latest round of Turkish Super Lig fixtures due to the devastation caused by Monday's earthquakes.