Bradford: (14) 23
Tries: Sykes, Burgess, Jeffries
Goals: Deacon 5
Warrington: (6) 10
Tries: Johnson, Hicks
Paul Deacon guided Bulls to their third win of the season as Warrington missed the chance to join Leeds at the top.
Deacon kicked five goals, one drop-goal and provided a superb grubber kick for Sam Burgess's first-half try.
Paul Sykes touched down for the first try for Bulls, with Paul Johnson going over to keep the Wolves in the hunt.
Chris Hicks's try for Warrington set up a tense finish, but Ben Jeffries sealed the win with a 70-metre run after intercepting Matt King's wayward pass.
Bradford boss Steve McNamara:
"Paul Sykes is not looking great and he's going for an X-ray on his elbow.
"Tame Tupou has damaged his knee, but that probably needs 24 hours before we can assess it properly.
"We were solid without being spectacular. We did what we needed to."
Warrington coach Paul Cullen:
"We've paid the price for pushing the pass. We were probably guilty of trying to win the game a little bit too early.
"They beat us in the battle for field position, and that was always going to be the key factor in these conditions."
"Michael Monaghan was taken off as precaution."
Bradford: Sykes, Tadulala, Evans, Hape, Tupou, Jeffries, Deacon, Lynch, Newton, Feather, Nero, Finnigan, Burgess.
Replacements: Solomona, Godwin, Cook, James.
Warrington: Reardon, Hicks, M. Gleeson, King, Johnson, Briers, Monaghan, Morley, Clarke, Rauhihi, L. Anderson, Westwood, V. Anderson.
Replacements: M. Gleeson, Parker, Pickersgill, Bracek.
Referee: R Silverwood (Dewsbury)