Omid Alishah found the back of the net with a long-range strike six minutes after coming off the bench.
Esteghlal put Persepolis under pressure soon after and created several opportunities but their forwards failed to capitalize on their chances.
In the injury time, Esteghlal midfielder Arash Rezavand was brought down by Persepolis defender Ali Nemati and Mooud Bonyadifar awarded a penalty to Esteghlal after a VAR review.
Kevin Yamga converted his penalty into the goal to seal a 1-1 draw.
Earlier in the day, Sepahan defeated Foolad 3-1 in Isfahan and Shams Azar defeated Nassaji 2-1 in Qazvin.
Esteghlal remained top with 25 points, one point above Sepahan, who have one game in hand.
Persepolis are third with 21 points.
SD/TT