St Helens (26) 30
Tries: Gardner, Meli 2, Pryce, Wheeler, Long Goals: Long 3
Bradford (10) 34
Tries: Tadulala 2, Kopczak, Burgess, Worrincy 2 Goals: Sykes 5
Tadulala scored Bradford's first two tries at Knowsley Road
Struggling Bradford staged a stunning second-half comeback to snatch victory away from table-toppers Saints.
Semi Tadulala scored twice for the Bulls before tries from Ade Gardner, Francis Meli (2), Leon Pryce and Gary Wheeler put Saints firmly in control.
Craig Kopzcak and Sean Long traded touchdowns before a score by Sam Burgess gave the Bulls renewed hope.
Michael Worrincy went over twice to edge the Bulls in front and they held off some late Saints pressure to win.
The performance sees Bradford move out of the bottom two of the Super League, although they looked buried with the scores at 26-10 at half-time.
Tadulala touched down twice in the first 10 minutes, with Paul Sykes adding the extras from the second touchdown, after good work from David Solomona and Michael Platt.
Burgess and Steve Menzies were unlucky to have two tries disallowed by the video referee after excellent high kicks from Ben Jefferies.
But league leaders Saints hit back with a pulsating passing move which found Gardner before opposite wing Meli added a second two minutes later.
Although Long failed with both conversion attempts, ex-Bull Pryce put the home side in front on 30 minutes with his 10th try of the season.
Substitute Wheeler finished off another fine handling move before James Roby broke clear to create a second try for Meli to give Saints a 16-point cushion at half-time.
Coach Steve MacNamara's half-time team-talk had its desired effect as Kopczak crashed over from close range on 49 minutes, his first score for the club.
However, Long extended the lead to 30-16 after collecting Wheeler's kick from a break.
That score saw Bradford hit back with three tries in eight minutes, two of them from substitute Worrincy, to regain the lead.
The first saw Burgess stretch out of an uncompleted tackle from James Graham to touch down before Worrincy finished off a break by Tadulala.
And his second came after another probing high kick from Jeffries.
Sykes took his goal tally to five from six attempts as the Bulls held on for their third win of the season.
St Helens coach Mick Potter:
"We lost because the other team scored more points than us and we weren't good enough.
"I'm not making any excuses. They were very competitive and never gave up.
"We came up with some good stuff and executed some real nice plays just before half-time but the momentum changed quite a lot of times in the game."
Bradford coach Steve McNamara:
"We needed to respond after last week and we responded in the right manner.
"What happened last week wasn't acceptable and I'm very pleased we've managed to bring back some credibility to ourselves.
"Once they get on a roll, it's very difficult to come back but it was a fantastic effort by the players. They showed some real belief."
St Helens: Wellens, Gardner, Dean, Gilmour, Meli, Pryce, Long, Graham, Cunningham, Hargreaves, Wilkin, Flannery, Clough.
Replacements: Wheeler, Roby, Fa'asavalu, Ashurst.
Bradford: Halley, Sheriffe, Menzies, Platt, Tadulala, Sykes, Jeffries, Lynch, Newton, Scruton, Solomona, Burgess, Langley.
Replacements: Rinaldi, Kopczak, Cook, Worrincy.
Referee: R Silverwood (Dewsbury).