The Nerazzurri found the net three times in the second half to ensure that boss Luciano Spalletti was left smiling against the club he managed last season.
Inter join Juventus with six points from six at the top of the Serie A table, having earned an equally-impressive 3-0 win against Fiorentina last weekend.
Handanovic produced another good save to keep out Dzeko later in the first half, while Candreva could only pick out the gloves of Alisson Becker at the other end.
Nainggolan's first-time effort gave the visitors a further scare, striking the post and being cleared away, but Inter were still in the game and Alisson was needed to thwart Icardi with a good reaction stop.
Roma hit the post for the third time a little over an hour into the contest, this time after Diego Perotti unleashed a bullet strike that rattled the frame of the goal.
Spalletti's men could hardly believe their luck when, just a couple of minutes later, Icardi pounced to clinically tuck the ball past Alisson.
Dalbert did well to keep Stephan El Shaarawy's attempt off the line, and it proved a big moment in the match as Icardi was soon at it again as he blasted the ball home on the turn to give his side the lead.
Inter added a third late on through Matias Vecino, who converted from Perisic's cross when the visitors were given time and space to counter.