The three points were no more than the visitors deserved on Sunday, having dominated a pulsating opening period that saw the midfielder score his first with a fine 12th-minute effort.
Inter had won their previous eight home league matches, but they took too long to get going against an energetic Roma outfit and ultimately paid the price as their attempts to equalise came up short.
Instead, Nainggolan added a superb second 11 minutes after the restart to cap an outstanding individual performance.
And although the hosts were handed a lifeline by Mauro Icardi's 81st-minute goal, Diego Perotti's penalty four minutes later sealed Roma's victory.
Roma quickly established control with Edin Dzeko a focal point in attack and Mohamed Salah forced a strong save from Samir Handanovic after reaching the former Manchester City forward's pass.
The visitors were not to be denied, though, and Nainggolan was the next man to be picked out by Dzeko. The Belgium international charged in from the left to arc a stunning right-foot strike into the top-right corner.
5 - Radja Nainggolan has now scored 5 goals against Inter, his favourite target in Serie A. Update. #InterRoma— OptaPaolo (@OptaPaolo) February 26, 2017
That goal initially seemed to wake Inter from their slumber, but a first chance for Joao Mario was deflected over the crossbar by Kostas Manolas.
Roma came again and Dzeko drew a fine one-handed stop from Handanovic, before Roberto Gagliardini's vital challenge closed out a clear opening for Salah.
Visiting goalkeeper Wojciech Szczesny was finally tested in the final minute of the first half, but he was equal to Marcelo Brozovic's bobbling curler.
Inter improved after the break, with Szczesny alert again, denying Antonio Candreva, and Bruno Peres blocking from Ivan Perisic in front of goal.
However, Roma remained a threat on the counter and Nainggolan soon added his second in similarly spectacular fashion.
Muscling his way through the middle third of the pitch, space opened up ahead of Nainggolan and he continued on to power a superb finish high into the net from 20 yards.
Although Icardi lashed wildly over at the other end and Eder failed to turn home from close range, the visitors' determined defensive efforts largely continued to keep Inter at bay.
Dzeko could have then added a third, nodding wide from Perotti's cross, and his miss looked as though it could prove costly when the hosts pulled a goal back.
Icardi converted from close range after Perisic had made progress on the left, but another twist killed Inter's chances as Gary Medel conceded a penalty for a foul on Dzeko.
Perotti stepped up to coolly roll the spot-kick past Handanovic and secure a deserved win.