Vainikolo's solo try ended Warrington's hopes of victory
Bradford: (20) 40
Tries: Withers 3, Deacon 2, Vainikolo
Goals: Deacon 8
Warrington: (10) 24
Tries: Briers, Fa'afili, Koe-Love, Reardon
Goals: Briers 4
Bradford kept their hopes of a sixth successive Grand Final alive as a late flurry of tries fended off a brave Warrington fightback at Odsal.
Bradford raced into an 18-0 lead after as many minutes, courtesy of tries from Michael Withers (2) and Paul Deacon.
Warrington fought back with tries from Lee Briers, Henry Fa'afili, Toa Kohe-Love and Stuart Reardon.
But Deacon's 68th-minute try was followed by Lesley Vainikolo's long-range effort and Withers' third.
The Bulls, who have now set up a match against Hull for the right to face St Helens in the Grand Final, got off to the most inauspicious of starts with Deacon putting his kick-off out on the full.
Things got even worse moments later when prop Andy Lynch was stretchered off with a broken ankle.
But it was the home side who opened the scoring with a glorious try as the ball passed through the hands of Terry Newton, Deacon and Brett Ferres before Shontayne Hape popped it up for Withers to dart over.
It marked a period of complete Bulls dominance, with Withers claiming a second after clever build-up play from Newton and Brad Meyers.
Warrington were clearly shaken, and their confidence was not helped by Briers sending his subsequent kick-off out on the full.
Deacon's try - following a barnstorming run from Karl Pryce - and third conversion made it 18-0 after just 18 minutes, and left Warrington fearing the worst.
Deacon contributed 24 points to Bradford's win
But the Wolves players showed great character to work themselves deep into Bradford territory and tee up Briers to score a much-needed try on 22 minutes.
Briers suddenly went from strength to strength as he set up his side's second with an inch-perfect kick to the corner for Fa'afili five minutes later.
The momentum of the match had shifted completely, and Bradford were grateful for a long-range Deacon penalty on the stroke of half-time.
With Lynch's absence putting great pressure on Bradford's resources, Warrington made a scorching start to the second half.
Kohe-Love scored on 47 minutes, putting the finishing touch to a flowing move started by Reardon's stepping run and a brilliant Mike Wainwright sleight of hand.
Reardon got on the end of another superb handling move three minutes later to score another Warrington try.
The Wolves were now on top with breaks from Michael Sullivan and Martin Gleeson keeping Bradford on the back foot.
A Briers penalty put Warrington into a 24-22 lead, but hopes of a fairytale win were extinguished by Deacon's excellent second try when the scrum-half stepped inside two tackles to score under the posts.
Warrington never regained the momentum again, with Vainikolo's length-of-the-field try - after Paul Rauhihi coughed up possession - finally breaking their resistance.
And Withers claimed a late hat-trick score - although replays showed he had not touched the ball down - in a cruel end to Warrington's valiant efforts.
Bradford coach Steve McNamara:
"We looked a bit out on our feet in the second half, but we dragged ourselves back into it, despite losing Andy Lynch after a couple of minutes.
"Warrington are an outstanding side and have some fantastic individuals, and they were causing us some concerns.
"We really had to do something about it, and we did."
Warrington coach Paul Cullen:
"We took everything Bradford had to throw at us and then some, and then ran the legs off them.
"Without one knock-on we could still be in, but they're very tight margins.
"It was a remarkable effort to come back and we are very proud of that. We just need to work on not letting them get that far ahead to start with."
Bradford: Withers, Bai, B. Harris, Hape, Vainikolo, I. Harris, Deacon, Vagana, Newton, Lynch, McKenna, Meyers, Ferres.
Replacements: Cook, Burgess, Henderson, Pryce.
Warrington: Reardon, Fa'afili, M. Gleeson, Kohe-Love, Barnett, Briers, Bridge, Wood, M. Gleeson, Rauhihi, Swann, Wainwright, Westwood.
Replacements: Grose, Parker, Sullivan, Pickersgill.
Referee: R Silverwood (Dewsbury)