Ipswich Town's U18s are through to the semi-finals of the FA Youth Cup, where they will play Liverpool, after a thrilling 3-2 victory over Sheffield United at Portman Road.
The Blues lost keeper Antoni Bort in just the second minute, due to injury, but regained their composure and took the lead just after the break from a Nico Valentine strike.
However, Will Osula equalised for the Blades on 56 minutes, before Andre Brookes netted with five minutes left.
A lengthy added-on time because of Bort's injury saw Elkan Baggott equalise for the Blues. But as the game headed into extra-time and looked set for penalties, Harvey Cullinan unluckily diverted into his own net to give Town the win.
It was a thrilling finish to a thrilling tie with the Blades ending the game with 10 men after Hassan Ayari was sent off for a reckless challenge on Cameron Humphreys in extra-time.
Liverpool beat Arsenal 3-1 in the other semi-final.
Sheffield won an early corner that Town keeper Bort punched clear, but got clattered in the process. It was a heavy blow and substitute keeper Lewis Ridd took over between the sticks.
Sheffield were pushing early and won three corners in the first nine minutes but Town had the first clear-cut chance on 24 minutes, as good work by Gerard Buabo and Liam Gibbs saw the ball fall to Edwin Agbaje but he side-footed wide from the angle of the six-yard box.
Alfie Cutbush and Cameron Humphreys had shots blocked as Town began to get into the game, but Blades' Hassan Ayari missed his shot in front of goal before Cameron Stewart bravely blocked Will Osula's shot seven yards out.
Valentine pulled a delicious ball across the six-yard box, but no Blue shirt was there to convert. Gibbs' long-range effort was deflected wide and from the corner Albie Armin's shot was also deflected wide.
Armin almost broke the deadlock moments later as his hook shot hit the bar. It was the closest anyone had come to scoring as 16 minutes of added-time were being played at the end of the first half.
Agbaje was booked for a foul on Beau Anderson and not long after Stewart was booked for a foul on Ayari as a very long half came to an end.
Town opened the scoring in the first minute of the second half, Gibbs making a fine run down the left and pulled it back to Valentine, eight yards out. Arblaster was booked for a foul on Buabo as Stewart couldn't quite make contact with his head in the area to divert home.
But it was all level after 56 minutes, Oluwafemi Seriki made a fine run down the Blades right and his pin-point cross was swept home by Will Osula. At the other end Buabo's header hit the bar and Valentine's shot was brilliantly saved by Hiddleston with Agbaje's shot then saved and Gibbs finally shooting over.
Sheffield's Anderson was stretchered off after thumping into the boards and straight from the restart Sheffield took the lead, Andre Brookes' snap-shot beating Ridd.
But Town hit back, Elkan Baggott heading home a Humphreys corner as another 14 minutes of time were added. It was a fantastic never-say-die attitude from Adem Atay's side and it was now they who begain extra-time in the ascendency.
Ayari was sent off for the Blades for his reckless foul on Humphreys, before Humphreys again danced to the by-line and pulled the ball into the six-yard box where the unlucky Cullinan sliced into his own net.
There were joyous scenes as the referee brought the tie to an end. A fantastic performance by the Town.
Comments: Our rules
We want our comments to be a lively and valuable part of our community - a place where readers can debate and engage with the most important local issues. The ability to comment on our stories is a privilege, not a right, however, and that privilege may be withdrawn if it is abused or misused.
Please report any comments that break our rules.
Read the rules here