Bradford (6) 22
Tries: Nero 2, Kearney, Addy Goals: Sykes 3
Hull (22) 28
Tries: Briscoe, Tansey, Tickle, Yeaman, Hall Goals: Tickle 4
Hall's match-winning try was his ninth of the season
Hull FC survived a powerful second-half Bradford fightback to win at Odsal and inflict a seventh straight defeat on the Bulls.
It looked all over at half-time when Hull led 22-6, thanks to tries from Tom Briscoe, Jordan Tansey, Danny Tickle and Kirk Yeaman.
But Bradford rallied to level through Brett Kearney, Chris Nero's second try of the game and Danny Addy.
Yet all that hard work was undone when Tansey set up Craig Hall to win it.
Hull's victory lifted them back above Leeds and into fourth in the Super League table. But it could have been very different had Hall's stunning winner not steadied the nerves.
Such a tense finish was unthinkable as Hull started the stronger, going on to dominate the first half after Briscoe cut in from the left to break the deadlock, Tickle adding his 50th conversion of the season.
The Bulls did level when Nero pounced on Paul Sykes's grubber kick, only for Tansey to go over in the corner to re-establish the visitors' lead.
Tickle then went in under the posts before Yeaman intercepted Sykes's pass to canter in for a fourth.
Bradford were booed off at the break but came out a different side as Kearney went in at the corner within two minutes of the restart.
Nero then forced his way over before replacement Addy crossed to give Sykes the opportunity to level the scores with the conversion.
But hopes of a famous comeback win were undone when Tansey jinked past the Bulls defence and ran 70 metres before offloading to Hall for the winning try.
Bradford coach Steve McNamara:
"I thought our second-half performance probably deserved enough for us to go and win the game.
"I felt we were going to go on and do that; we had the momentum there.
"It was special, freakish, whatever you want to call it, but Jordan Tansey can do that and it has cost us.
"But I think we played pretty well in the second half and showed the way to go for us. We need to continue that for 80 minutes next week."
Hull coach Richard Agar:
"Jordan Tansey played a pretty big role for us today and came up with a bit of magic at the end.
"Craig Hall showed great effort to come off the bench, get in the game so early and be right on the end of the pass.
"It was a try worthy of winning it and I'm pleased we did.
"I thought we showed enough commitment through some adversity to do it."
Bradford: Kearney, Sheriffe, Platt, Nero, Reardon, Sykes, L'Estrange, Lynch, Godwin, Hall, Langley, Worrincy, Menzies.
Replacements: Whitehead, Addy, Crossley, Kopczak.
Hull: Tansey, Whiting, Turner, Yeaman, T. Briscoe, Washbrook, Berrigan, Dowes, Houghton, Cusack, Manu, Tickle, Fitzgibbon.
Replacements: Burnett, Lauaki, Radford, Hall.
Referee: I Smith (Oldham).