Emotions for both teams were running high before kick off.
For Wales and Gareth Bale it was a historic moment, as the Welsh forward became Wales most-capped player with his 110th appearance for Wales.
The civil unrest in Iran had been brought up multiple times ahead of today’s game, made more significant by the Iranian team refusing to sing their national anthem ahead of their last game against England. This time it seemed the players reluctantly sang, but there were grown men crying in the crowd, and fans actively protesting.
But, both sets of players had asked people to focus on the football, and there was plenty of it to look at.
Both teams started much more brightly than in their first group games, and there were chances for both Keifer Moore and Sardar Azmoun that were met by saves from both keepers.
Iran thought they had broken the deadlock first, but their lovely well worked team goal was ruled just offside due to Gholizadeh‘s knee.
That non-goal seemed to give Wales a bit of a boost, and they enjoyed a nice little spell of possession, but the game soon became very equal again. There was almost no room for breath for those watching.
A draw would only really be helpful for the USA, in terms of the group, so both teams were eagerly chasing an opener as the game quickly headed towards half-time. Chances came for both Azmoun and Wilson.
Despite chances for both teams, and a bit of pinball in Iran's penalty box at the end of the half, there was nothing to separate the teams going into the break.
The game certainly started slower in the second half but it didn’t take long for the game to kick into action, with Iran having a shot rattled off the post and then the follow up being matched by a great save by Wayne Hennessey.
Then Wales went up the other end but Keifer Moore and Harry Wilson could not take their chances.
Wales decided it was time to go for it, bringing on two attacking substitutions in Dan James and Brennan Johnson.
It did not stop the Iran attack though, they were throwing wave after wave of attack at the Welsh defence, earning corner after corner and bringing out fingertip saves from Hennessey.
Wales did find themselves having a good spell of possession, after an influx of substitutions, and Ben Davies stellar shot towards goal was matched by an incredible save from Hosseini.
Unfortunately for Wales, their luck seemed to be running out. Neco William put his defence and goalkeeper in trouble and Wayne Hennessey, who had done so well to keep Wales in the game, had a complete lapse of judgement and came charging out of goal into Taremi.
He was at first given a yellow card but that was soon rightly overturned by VAR.
Aaron Ramsey was sacrificed for keeper Danny Ward, who was soon called into action when Torabi shot just inches wide.
Wales, unbelievably, did have their chances though, and could have been in with Keifer Moore, but his touch let him down. Ben Davies also whipped in a free kick but it was nothing to trouble the Iranian defence and Iran looked to counter.
Finally, Iran got what could arguably be the most deserved goal ever. As Joe Allen tried to clear his lines, the pass fell to Cheshmi who pulled it back to fire in a beautiful shot into the goal. The whole of the Iran team stormed the pitch and Welsh fans were left in tears.
And just like buses, you wait all that time for one goal and then two come along at once. From a Welsh throw the Iranian attack broke away and Rezaeian got a well-deserved second goal for Iran.
Iran came out on top today and that victory will undoubtedly mean so much to so many Iranians during such a difficult time for their country.
Wales will have to wait and hope other results go their way but they will still have it all to do against England on Tuesday.
Wales: Hennessey, Mepham, Rodon, B.Davies, Roberts (57), Ramsey (87), Ampadu (77), Wilson (58), N.Williams, Bale, Moore.
Subs: Gunter, Allen (77), Johnson (57), Ward (87), Morrell, Lockyer, J.Williams, Harris, James (58), A.Davies, Thomas, Levitt, Cabango, Colwill, Smith
Iran: H.Hosseini, Rezaeian, M.Hosseini, Pouraliganji, Mohammadi, Ezatolahi (83), Gholizadeh (77), Nourollahi (78), Hajsafi (77), Taremi, Azmoun (68)
Subs: Moharrami, Khalilzadeh, Jahanbakhsh (77), Ansarifard (68), Amiri, Niazmand, Kanaanizadegan, Ghoddos, Cheshmi (78), Torabi (77), Karmi (83), Abedzadeh, Jalali.