Leeds United survived a remarkable West Ham fightback to advance to their first Emirates FA Cup semi-final for 39 years in a rollercoaster tie at the London Stadium.
The visitors looked to have the job done when goals from Ao Tanaka and Dominic Calvert-Lewin left them 2-0 up heading into second-half stoppage time.
But the Hammers staged an incredible late show, Mateus Fernandes and Axel Disasi levelling it up to force another 30 minutes.
West Ham saw two goals disallowed in a frantic period of extra time and Leeds held their nerve in the penalty shootout, winning it 4-2 after Lucas Perri saved from Jarrod Bowen and Pablo.
Leeds started strongly in the capital and fired an early warning shot through Noah Okafor, whose curling effort from the edge of the box was excellently tipped around the post by Alphonse Areola.
Areola’s opposite number Perri then pulled off a stunning save to deny Taty Castellanos from point-blank range as both sides threatened early on.
Perri palmed away Jarrod Bowen’s low shot across goal before the visitors made the breakthrough, Tanaka twisting and turning before firing a left-footed strike in off the underside of the bar.
Anton Stach was kept out by Areola shortly afterwards as Leeds sought a second though Castellanos continued to look lively for the hosts.
He skied one effort over late in the first half after a brilliant first touch and headed against the post on 62 minutes following a fine cross from the dangerous Adama Traore.
Noise levels grew around the London Stadium as the hosts sensed a leveller but Leeds absorbed the pressure and soon delivered what looked to be a sucker punch from the spot.
The penalty was given on VAR review after Max Kilman’s clumsy challenge on Brenden Aaronson and Calvert-Lewin stepped up to confidently dispatch past Areola and double the visitors’ advantage.
Wilfried Gnonto flicked narrowly wide and Areloa saved from Sebastiaan Bornauw as Leeds looked to put the result beyond doubt, with Jayden Bogle also blasting over.
And they were made to pay for their failure to do so when West Ham staged a remarkable injury time fightback.
Fernandes halved the deficit, converting the rebound after Bowen’s thunderous strike came back off the post, before Disasi got on the end of another teasing Traore cross to level matters in the most dramatic of styles.
West Ham, who have come through each of their three previous ties this season in a combination of extra time and penalties, thought they had taken the lead when Castellanos pounced on a Perri error and found the net only for VAR to reveal the striker had started his run in an offside position.
Leeds then came close at the other end, James Justin seeing two shots blocked in a goalmouth scramble before Gnonto blazed over.
The helter-skelter nature of extra time continued as West Ham saw another goal disallowed.
Bowen was again at the heart of it, with another fantastic effort from distance striking the post. The rebound fell to Pablo, who found the net but from an offside position.
There were fewer chances in the second half of extra time but another twist came when Areola was forced off with cramp, leading to a debut from the bench for 20-year-old goalkeeper Finlay Herrick.
He was thrust straight into action in the shootout and saved Leeds’ first attempt, diving to his right to keep out Joel Piroe.
Perri also guessed correctly to deny Jarrod Bowen and did likewise to keep out Pablo’s effort, leaving Pascal Struijk to step up and convert the winning penalty, sending the Yorkshire side to Wembley to the delight of their 9,000-strong travelling contingent.