Brighton came from two goals down with two minutes left before beating 10-man Millwall on penalties to reach their first FA Cup semi-final since 1983.
Millwall led with second-half goals from Alex Pearce and Aiden O’Brien.
Jurgen Locadia made it 2-1 before Solly March levelled with a stoppage-time free-kick after a mistake by keeper David Martin.
Millwall’s Shane Ferguson was sent off in extra time, and Jake Cooper’s miss gave Brighton a 5-4 shootout win.
Brighton’s Glenn Murray hit the bar with the first penalty of the shootout, but Seagulls’ keeper Mat Ryan saved Mahlon Romeo’s spot-kick with his foot to give his side hope.
Lewis Dunk converted the first of the sudden death penalties. before Cooper put his attempt over the bar to hand victory to the Premier League side.
Brighton felt they should have had a penalty for a push on Shane Duffy late in the first half, and Murray appeared to have been pushed over in the build-up to Pearce’s opener, but there was no video assistant referee in operation to check either call.
Millwall had stepped up after a lacklustre first half and were close to making the last four for the first time since 2013, when they lost to eventual winners Wigan Athletic.
Ferguson was shown a straight red card late in extra time after bringing his boot down the back of Duffy’s leg, and Locadia had the ball in the Millwall net with seconds remaining but the Brighton substitute was flagged for offside.
Video replays showed that that Locadia was just onside as Martin Montoya played the ball across, but in the end the decision did not matter with Brighton winning through to a semi-final at Wembley against Manchester City.
More to follow.