Jamie Foster denied the Bulls victory with the last kick of the game in dramatic encounter at Odsal.

Andy Lynch was penalised for taking out Lee Gaskell as he chased his own kick and Foster struck a cruel blow.

Saints opened the scoring within six minutes, James Roby doing good work from dummy half to send in Louie McCarthy-Scarsbrook, Jamie Foster converting.

Kyle Eastmond then had a try ruled out by the video referee before Bradford hit back.

Marc Herbert hoisted up an inviting bomb and Brett Kearney raced through to beat Paul Wellens, claim and touch down, Patrick Ah Van adding the extras.

Foster kicked a penalty but Saints were denied another try when Jonny Lomax's effort was chalked off for obstruction.

The Bulls edged in front when Andy Lynch scored off the pass from Heath L'Estrange but Tom Makinson responded three minutes before the break.

Errors reigned in a scrappy second half as conditions worsened but Ah Van edged his side in front with a penalty.

Bradford looked good value for the win until James Child's dramatic, last-gasp decision.

Bulls: Brett Kearney; Jason Crookes, Patrick Ah Van, Elliott Whitehead, Gareth Raynor; Ben Jeffries, Marc Herbert; Andy Lynch, Matt Diskin, Craig Kopczak, Olivier Elima, Ian Sibbit, Jamie Langley. Interchange: Heath L'Estrange, Tom Olbison, James Donaldson, Tom Burgess.

Saints: Paul Wellens; Tom Makinson, Michael Shenton, Kyle Eastmond, Jamie Foster; Lee Gaskell, Jonny Lomax; James Graham, James Roby, Louie McCarthy-Scarsbrook, Iosia Soliola, Jon Wilkin, Tony Puletua. Interchange: Josh Perry, Chris Flannery, Andrew Dixon, Tom Armstrong.