Neither side had managed a win after their opening draws - and that did not change after 90 minutes. Belgium could not break down Iran, finishing 0-0 despite Rudi Garcia's side dominating almost throughout. 21 shots, an xG of 1.77 - the return was zero.
The key to that result was Alireza Beiranvand. The Iranian goalkeeper was omnipresent, making seven saves in total. His finest moment came in the 59th minute, when Kevin De Bruyne played a cut-back to De Cuyper, who pulled the trigger from close range - Beiranvand pushed it away. The stop was widely regarded as one of the best saves of the tournament.
In the 25th minute, Iran briefly believed they had taken the lead. Mehdi Taremi finished with a first-time shot from a free kick routine, but VAR flagged offside - the supposed opener was ruled out.
The match's turning point came in the 66th minute: Ngoy lost the ball with a misplaced back-pass, Taremi burst clear on goal - and Ngoy hauled him down. Red card for denial of an obvious goalscoring opportunity, Belgium reduced to ten men. Iran pressed forward, but with an xG of just 0.61 they remained well short of the chances needed. Even after the red card, Beiranvand made another save to deny De Cuyper.
A notable footnote: Iran's starting eleven had an average age of 32.52 years, the oldest starting lineup in World Cup history since records began in 1966. Jahanbakhsh came on at half-time for Iran, making his 100th international appearance in the process.
In the middle period, both sides made a further seven substitutions combined, including a Belgian triple change in the 58th minute. In the 87th minute, Fernandez-Pardo replaced De Bruyne - by which point the game had long since settled.
With two points each from two matches, both Belgium and Iran are well placed, but both sides still need something from their final group game. For Iran, a first-ever appearance in a World Cup knockout round is within reach - this draw keeps that dream alive.