Trailing to a goal by on-loan striker Noel Whelan the Bantams, without a home win since February 1 were clearly out of sorts for the first hour but dug deep to pull off a vital win in the bid to beat the drop.
Peter Atherton brought them back on level terms before Simon Francis clinched the win with his first goal for the club.
As for Palace, their hopes of reaching the play-offs are all but over although they had chances to wrap up the points and can have only themselves to blame.
After 24 minutes Noel Whelan, signed on loan from Middlesbrough until the end of the season , broke the deadlock for the Eagles.
A throw in form Butterfield was inadvertently flicked on by a City defender before Whelan caught the ball on the turn and buried his shot in the back of the net from six yards.
The home side struggled to find the kind of passion which earned them a draw against high-flying Leicester City in mid-week but could have equalised when Scottish International Andy Gray created space for himself on the edge of the box, only to miss the target.
Palace should have doubled their lead eight minutes before the break. Gary Borrowdale swept over a teasing cross from the left finding Ade Akinbiyi unmarked only six yards out, only for the striker to miss the target.
In the second half Palace started brightly, but after having a penalty appeal turned down on the hour the Bantams finally began to show some signs of getting back into the game.
Gus Uhlenbeek and Gray both came close for the home side before they hauled themselves back in to the match .when Peter Atherton hit the ball through a ruck of players in to the net after 69 minutes.
Bradford sensed victory and five minutes later grabbed the lead.
Lewis Emanuel cut the ball across the box from the by-line and, with Palace in complete disarray, it fell kindly for Francis and he drilled it into the net form just outside the box.
Atherton and Ashley Ward could both have added a third for the Bantams, but two proved to be enough.