The Reds made a strong start to the game as Soroush Rafiei put the ball into the back of the net just five minutes into the game with a shot from inside the box.
In the 17th minute Esteghlal midfielder Farshid Esmaeili scored the equalizer with a rocket shot from edge of the penalty area. Two minutes later Esmaeili set up another goal when Ali Ghorbani converted his cross to make it 2-0.
Esteghlal completed the comeback one minute before the half time when Kaveh Rezaei beat Persepolis keeper Alireza Beiranvand for the third time in less than 45 minutes.
The Reds put Esteghlal under pressure to reduce the deficit in the second half but the Blues parked the bus as they were defending with 10 men.
Finally in the third minute of injury time Persepolis captain Jalal Hosseini made it 3-2 with a header from inside the six yard box but it was too late.
Esteghlal keeper Mehdi Rahmati was shown the red card after he hit Hosseini who was trying to take the ball into the middle of the pitch in order to restart the match as soon as possible.
Despite the loss Persepolis are still at the top with 47 points while Esteghlal maintained in third place with 37 points.