Bradford (12) 18
Tries: Elima, Scruton 2 Goals: Ah Van 3
Castleford (8) 14
Tries: Chase, Clark
Goals: Dixon 3
Scruton scored either side of half-time for Bradford
Castleford lost their unbeaten record as Bradford Bulls claimed their third win of the season to triumph in the West Yorkshire derby at Odsal.
Rangi Chase put Tigers ahead after just three minutes before Olivier Elima claimed his first try for the Bulls.
Kirk Dixon then kicked a penalty for Tigers before Nick Scruton's brace of tries put the Bulls in charge.
Patrick Ah Van's third goal made it 18-8 before Daryl Clark narrowed the gap with the Tigers' second try.
Having been hammered 50-16 by Huddersfield last weekend, the Bulls' defence was much improved as they held on to secure a tight win against one of this season's early front runners.
Chase had brushed aside the attempted tackles of Jamie Langley and Brett Kearney before dashing 40 metres to the line to put the visitors ahead.
But after Kirk Dixon added the extras Bulls fought back, with Elima forcing his way over only seven minutes later before Ah Van duly converted.
Dixon then added a penalty to give Tigers an 8-6 advantage but Heath L'Estrange's pass allowed Scruton through to restore Bradford's lead at half-time.
The Bulls hooker then put Scruton through for a second time and Ah Van's third successful kick of the afternoon secured the win.
Clark then went over for what proved to be a consolation try with Dixon closing the gap to four points with his second conversion of the match.
Bradford coach Mick Potter:
"Our ball control wasn't what we would have liked but the crowd got their money's worth.
"It wouldn't have been hard to improve on last week. We showed some grit and determination, especially in the second half.
"We're not playing at our best but the defence was so much better. It was chalk and cheese.
Castleford coach Terry Matterson:
"I'm not too disappointed. I thought the effort was really good. There was a lot of good stuff out there. We were courageous but not quite as smart as we have been.
"I knew Bradford would bounce back and we were prepared for that. We had a fair few opportunities.
"Our scrambled defence was great but we gave them too much ball in the first half and, in the second half, losing Danny Orr disrupted us."
Bradford: Sykes, Ainscough, Platt, Royston, Ah Van, Kearney, Herbert, Lynch, Diskin, Hargreaves, Elima, Whitehead, Langley.
Replacements: Olbison, L'Estrange, Scruton, Kopczak.
Castleford: Mathers, Dixon, Arundel, Ferres, Youngquest, Chase, Orr, Jackson, Milner, Huby, Holmes, Emmitt, Jones.
Replacements: Clark, Fozzard, Isa, Aspinwall.
Referee: Robert Hicks (Oldham).