Two goals in extra-time put Bristol City on the road to Wembley and heading towards the £40million prize of a place in the Premier League.
Lee Trundle, written off as a £1million flop only weeks ago, struck the first into the top left-hand corner. Then Crystal Palace were finally crushed by a 30-yard free-kick from Michael McIndoe.
As they had in the first leg, which they won 2-1, the little regarded Bristol side turned up the heat late on.
Palace had clawed their way back in for manager Neil Warnock, who had not lost in five previous play-off semi-finals, when Ben Watson headed into an empty net.
They had the game at their mercy later with a penalty, but Watson slammed his shot into the bottom of the keeper's right-hand post.
With that escape, City took on fresh legs and went on to dominate the rest of a highly charged match.
Before his goal Trundle had burst through on the right in time added-on to hit the top of the bar.
Palace owed so much to their captain Mark Hudson. He headed off the line from Dele Adebola in the second minute and overall won his duel with the one-time Palace striker.
But Hudson was partly responsible for both Bristol goals. His header out of defence failed to clear his lines and fell to Bradley Orr, who set up Trundle.
Then Hudson handled to give away the free-kick which finally sank his side.
Palace's goal had come when City's Brazilian keeper Adriano Basso came off his line to punch clear, but failed to reach the ball and Watson sent a looping header into the unguarded net.
This equaliser over the two legs increased the tension and when Louis Carey, the home captain, was brought down in the Palace half, referee Howard Webb needed all his coolness and experience to defuse an angry situation,
He booked Palace's Clint Hill and Clinton Morrison and sent City's assistant manager Keith Millen to the stands.