Following a cagey first half, Marcus Stewart put the visitors ahead from the spot after Tony Popovic had fouled Carl Robinson in the box. However, the Eagles were soon on level terms through Neil Shipperley's looping header and a deflected shot from Danny Butterfield then put them ahead.
With the clock ticking, Kevin Kyle lashed home from close range after Palace had failed to clear their lines only for Andrew Johnson to swing the tie back in the Eagles' favour.
Both sides were not afraid of throwing their weight around, but for all the strong challenges and decent build-up play, the match lacked a clear-cut opening during the first 30 minutes. Jason McAteer tried the patience of the referee once too often when he pulled back Danny Granville and promptly went into the book on 43 minutes.
The match sprung into life five minutes into the second half, when the ball broke to Robinson in the Palace box and, as he looked to make space for the shot, he was brought crashing down by Popovic. Stewart sent Vaesen the wrong way.
Palace were straight back on level terms when Danny Granville's centre from the left was expertly looped over Poom and into the far corner by captain Shipperley from 15 yards out.
Then, after 63 minutes, there seemed little danger when the home side were awarded a free-kick some 35 yards out. With the Sunderland defence expecting a long ball into the box, Hughes simply rolled it along the line to Butterfield. He took one touch to set before unleashing a low drive into the crowded box, and the ball took a deflection off Phil Babb and found its way past a scrambling Poom.
Julian Gray went into the book on 82 minutes after pulling back Smith, and Palace were made to pay for some slack defending from the resulting free-kick. They had a number of opportunities to clear Sean Thornton's deep delivery, but when the ball dropped to Kyle some six yards out, he made no mistake to level matters.
Again, though, Sunderland failed to hold onto their lead. Johnson held off three defenders before driving a low ball past Poom on 86 minutes.
: Vaesen, Granville, Leigertwood, Popovic, Butterfield, Gray, Riihilahti, Hughes (Derry 83), Routledge, Johnson, Shipperley (Powell 89).
: Poom, McCartney, Babb, Breen, Williams (Bjorklund 69), Robinson, Whitley, McAteer (Thornton 46), Oster, Kyle, Stewart (Tommy Smith 77).
: R Beeby (Northamptonshire).