The Giallorossi created the better chances, but Inter were good value for the point, which gives them a two-point advantage over Hellas Verona in fifth place.
Roma move to within eight points of Juve with the same number of games played, although the Bianconeri have the chance to move 11 clear when they face AC Milan on Sunday night.
It was an intense game from start to finish with referee Mauro Bergonzi doing well to keep his hand out of his top pocket as much as he did.
These two sides have a history of tight but entertaining games, and this was no different with Rodrigo Palacio heading the first chance of the game over the crossbar.
Roma defender Medhi Benatia was lucky to get away with holding back Mauro Icardi inside the penalty area as he tried to reach a long ball forwards, and it was Roma's turn to complain when a goal was disallowed in the 32nd minute.
Radja Nainggolan touched a cross on - using his arm - to Mattia Desto, whose shot came back off the post only to be fumbled in by Samir Handanovic.
The linesman's flag came to the Inter goalkeeper's rescue, although Nainggolan's handball could also have seen the goal ruled out.
Roma midfielder Daniele De Rossi was always at the heart of the action and he too could have been punished for what appeared to be a punch in the side of Icardi's face as each corner or free-kick led to a scrum of players inside the box.
The hosts raised the tempo in the second half and Gervinho was close to putting them in front several times with some desperate defending rescuing Inter.
Another punching incident, this time involving Juan Jesus, was missed by the referee and his assistants with De Rossi leading Roma's protests as Bergonzi struggled to keep a lid on the game.
The referee did not allow a second to be played above and beyond the allotted stoppage time, though, as he seemed relieved to be able to send 22 players back into the dressing room at the end of a keenly fought contest.