Kianoush Rahmati gave the Tehran favorite team a lead in the 22nd minute from a free kick.
Esteghlal captain Majidi doubled the scoreboard just before the interval.
The visitors battled back from a 2-0 loss to equalize the match.
Mehrdad Karimian chipped the ball over Esteghlal keeper Mohammad Mohammadi’s head two minutes into the second half.
Amir Hossein Sadeghi inadvertently put the ball in his own net in the 90th minute; however, Majidi scored the winning goal for Esteghlal in the extra time.
“I congratulate Moghavemat team because of their performance. Their young players put us under pressure in our home game. Esteghlal conceded two goals for individual errors but we eventually came back and won the match,” Esteghlal coach Samad Marfavi said in the post match news conference.
Sepahan of Isfahan stays on top of the IPL table with 40 points, above Zob Ahan and Esteghlal with 36 and 30 points respectively.