Ali Shojaei netted the decisive spot kick after Brazilian defender Maicon’s effort was saved by Persepolis goalkeeper Hamed Lak in the penultimate round of penalties as the Iranians made their second final in three years.
The game finished 1-1 at both full-time and following 30 minutes extra time after Al Nassr’s Abderrazak Hamdallah had seen his 36th minute penalty cancelled out by Mehdi Abdi’s header six minutes later.
Persepolis were reduced to 10 when Ehsan Pahlavan’s foul on Osama Al Khalaf earned him a second yellow card a minute before the extra-time interval.