Victory for either side would have given a new complexion to the scramble for top-four places but the Nerazzurri did neighbour AC Milan a favour in eking out a well-earned draw.
Croatia international Perisic netted seven minutes after Mauro Icardi's second-half introduction to hold Claudio Ranieri's men, who took an early lead through playmaker El Shaarawy's 14th-minute arrow.
Roma's inability to see out the result means it remains a point adrift of the fourth-placed Rossoneri, which earlier settled for the same scoreline at Parma.
Lautaro Martinez replaced the benched Icardi in attack and forced Antonio Mirante to turn a header against the upright in the eighth minute.
Perisic fluffed the follow-up to that chance and soon received a lesson in composure from El Shaarawy, who cut inside two defenders and fired beyond Samir Handanovic with stunning precision.
Federico Fazio then produced a crucial last-ditch challenge on Matias Vecino, before Danilo D'Ambrosio nodded wide at close range.
Inter was given a reprieve of its own after the restart when Lorenzo Pellegrini failed to find the target at the end of a quick break.
Ex-Giallorossi boss Luciano Spalletti turned to Icardi in the 54th minute but it was an unmarked Perisic restoring parity in the 61st minute, making amends for his earlier miss by heading in D'Ambrosio's cross.
Martinez volleyed over with the chance to add a quick-fire second and the spoils were shared after Inter captain Handanovic parried away Aleksandar Kolarov's late opportunity, the left-back stumbling under a nudge by Keita Balde.
Inter took a handy lead over Roma into this match but, with Juventus its next opponent, knew it had to avoid defeat to stay in pole position for third spot.
A draw will do, even if the time they spent in the attacking third might have warranted more than a point.