Neil Shipperley's scrambled second-half strike sent Crystal Palace back into the Premiership at West Ham's expense.
Palace captain Shipperley scored from close range after 61 minutes as West Ham goalkeeper Stephen Bywater failed to hold Andy Johnson's shot.
It capped a remarkable transformation under manager Iain Dowie and landed a potential £30m cash jackpot.
Palace keeper Nico Vaesen kept West Ham at bay with fine saves from Bobby Zamora and Steve Lomas.
Palace's season has been turned around after struggling at the wrong end of the First Division until Dowie's appointment in December.
And the ironic twist was that it was only an injury-time goal from West Ham's Brian Deane at Wigan on the final day of the league season that allowed Palace to sneak into the play-offs.
Palace had the first clear chance to break the deadlock after 14 minutes.
19 mins: Nico Vaesen saves brilliantly from Bobby Zamora
57 mins: Vaesen turns away Steve Lomas' drive
61 mins: Neil Shipperley puts Palace ahead
90 mins: Final whistle and Palace are back in the big time
Wayne Routledge's cross found Johnson unmarked, but the diminutive striker could not get over the ball and his header was off target.
But Palace were grateful to goalkeeper Vaesen five minutes later when he denied Zamora from point-blank range as he raced clear on to Michael Carrick's perfect long pass.
The play lacked moments of real quality, but chances were being created and nine minutes before the interval Palace were within inches of going ahead.
West Ham keeper Bywater dived bravely at the feet of Michael Hughes, but it needed a scrambling clearance off the line from Tomas Repka to keep the score level.
Repka then blotted his copybook on the stroke of half-time for a needless challenge on Johnson.
West Ham exerted pressure at the start of the second half, and it needed a spectacular one-handed save from Vaesen to divert Lomas' 25-yard volley to safety.
But it was Palace who took the lead after 61 minutes, when Bywater could only push out Johnson's shot and the veteran Shipperley was lurking to score from inside the six-yard box.
West Ham had the ball in the net twice through David Connolly and Zamora, but they were rightly ruled out for offside.
Palace's goal prompted a double switch from West Ham boss Pardew, who sent on Brian Deane and Nigel Reo-Coker for Zamora and Marlon Harewood.
But Palace were superbly organised and held out for glory.
Crystal Palace: Vaesen, Butterfield (Powell 69), Popovic, Leigertwood, Granville, Routledge, Riihilahti, Derry, Hughes, Shipperley, Johnson. Subs Not Used: Freedman, Berthelin, Black, Watson.
Booked: Derry, Hughes, Routledge.
West Ham: Bywater, Repka, Dailly, Melville, Mullins, Harewood (Reo-Coker 68), Carrick, Lomas, Etherington, Zamora (Deane 68), Connolly (Hutchison 74). Subs Not Used: Srnicek, Brevett.
Booked: Repka, Reo-Coker, Mullins, Etherington.
Referee: G Poll (Hertfordshire).