The Bulls scored a try within two minutes through Karl Pryce and Lesley Vainikolo also went over.
But Sid Domic scored a controversial try for Hull just before half-time and the visitors continued to apply the pressure after the break.
However, Vainikolo added a second try and Marcus St Hilaire's debut try sealed victory for a relieved Bradford.
Vainikolo had scored 10 tries in two games against Hull last season and has now scored 114 tries in 108 appearances for the Bulls.
Hull coach John Kear "It was a great performance. I'm delighted how they fronted up."
"We played ourselves into a position to get something out of the game and
another day those two chances at the end would go in our favour.
"But I can't fault the effort or the commitment nor, for the most part, the
application."
Bradford: St Hilaire, Bai, B. Harris, Pryce, Vainikolo, I. Harris, Deacon, Fielden, Henderson, Lynch, McKenna, Hape, Langley. Replacements: Vagana, Cook, Gene, Ferres.
Hull: Briscoe, Dixon, Domic, Yeaman, Tony, Cooke, R. Horne, Thackray, Brough, King, Radford, Hill, Whiting. Replacements: Carvell, Wheeldon, Chester, Lupton.