Nainggolan will be reunited with coach Luciano Spalletti at San Siro – the pair previously worked together in the Italian capital – ahead of the Nerazzurri's return to the Champions League.
Inter, who snatched fourth place in Serie A with a dramatic final-day victory over Lazio in May, have reportedly paid €38 million (£33.5m/$44m) up front to bring in the 30-year-old from their domestic rivals. Roma will also receive 10% of a sell-on fee, up to €2m.
Manager Spalletti has already hailed Nainggolan, telling Sky Sport Italia prior to the move being officially confirmed: "He is the turbine we were missing from our engine.
"The fact that as soon as he was on the market, he chose to come to Inter is an important sign for us.
"He can do well. He has the character to go against any opponent. He is a ninja. He fights with everyone on any field."
Nainggolan won 30 caps for Belgium, scoring six goals, before announcing his international retirement for the second time in less than a year after missing out on the Red Devils' World Cup squad.
However, he was an integral part of the Roma team that reached the last four of the Champions League in the 2017-18 season, Eusebio Di Francesco's side rallying on home soil to sensationally knock out Barcelona at the quarter-final stage before losing 7-6 on aggregate to Liverpool in the next round.
Meanwhile, Roma have signed two players from the Nerazzurri in Davide Santon, joining for €9.5m (£8.3m/$11m) and attacking midfielder Nicolo Zaniolo from Inter for €4.5m.
“I cannot wait to get started and show everyone what I can do,” Santon, who spent four years at Newcastle between two spells at San Siro, said.
“Coming to Roma means a lot to me, I really wanted to make the move and being here now has given me a lot of motivation.”