The European champions, needing a draw to qualify, went ahead with a stunning Ricardo Quaresma goal in the 45th minute.Ronaldo had a chance to extend the lead when he won a penalty in the 51st minute but Iran goalkeeper Alireza Beiranvand dived to his left to save his effort from the spot.
Karim Ansarifard equalised with a stoppage time penalty awarded after a video review. However, Portugal clung on to finish second in the group with five points behind Spain, who drew 2-2 with Morocco, on goals scored, and will meet Uruguay in the last 16.