The substitute’s finish marked the final action of the fifth-round tie, with the hosts emerging 1-0 winners.
Victory came at a price though after James Justin was carried off in the second half, suffering from a knee problem after hitting the deck awkwardly.
It was a forgettable game until the late drama and Jamie Vardy’s effort looped comfortably wide after hitting Lewis Dunk while Adam Lallana shot over in the best chances of a dull first half.
The Seagulls controlled possession but their patient build-up lacked the final pass.
Graham Potter’s side lost their Premier League clash 3-0 at the King Power Stadium in December yet forced Leicester to retreat and Andi Zeqiri’s ambitious overhead kick flew over five minutes before the break.
The lull continued after the break and Vardy was withdrawn after an hour for Iheanacho while James Maddison also replaced the ineffective Perez. In a rare opening Zeqiri did at least have the ball in the net after 65 minutes after a cute finish but was rightly ruled offside.
Two minutes later Cengiz Under also had a goal disallowed – sparing Dan Burn’s blushes when he lost the ball in the area – as Iheanacho was offside in the build-up. Zeqiri curled wide soon after, following the slip from Justin which saw the defender carried off.
Brighton looked the most likely to settle the game in normal time, although Christian Walton denied Under at his near post with four minutes left.
The game seemed destined for extra time until Iheanacho popped up at the death to head in Youri Tielemans’ cross and send the Foxes through.