The scores were level at half-time as Fraizer Campbell gave City the lead with Scott Sinclair equalising for the visitors, then late on Ian Ashbee stole all three points for his side with a dramatic winner.
Palace nearly took the lead within two minutes of the kick-off as skipper Mark Hudson thumped a header against the inside of the post from a Ben Watson corner.
Hull then came within inches of going ahead as a curling 25-yard free-kick from Dean Windass came back off Julian Speroni's crossbar, allowing the Palace defence to clear the danger.
The home side did take the lead on 18 minutes as Boaz Myhill hoisted up a long ball upfield onto the head of Caleb Folan, who managed to flick the ball on to Campbell. He cleverly created space for himself on the edge of the box and hit a shot which bobbled into the bottom corner of the net. It was his 15th goal of the season and put Hull 1-0 up.
A minute later, Bryan Hughes lifted the ball into the box and Windass hit the back of the net, but was correctly flagged offside.
Palace levelled the scores on 38 minutes as Clinton Morrison managed to nick the ball off the toe of Wayne Brown in the Hull box into the feet of Sinclair, who neatly tucked the ball under the body of Myhill and into the back of the net from five yards.
The Tigers came within inches of scoring a second midway through the second half as Michael Turner rose highest to a Dean Marney free-kick, but the Hull man's header floated just wide of the post.
With five minutes left Hull grabbed the winner as Marney swung in a corner from the right and captain Ashbee leapt to head the ball with precision past Speroni and into the back of the net to give his side a crucial 2-1 win.