The League Two outfit take a two-goal advantage into the second leg at Villa Park after the defender's late header capped off a glorious night for Phil Parkinson's side
Nakhi Wells opened the scoring with an opportunist’s goal in the first half, before poor defending allowed Rory McArdle to double the home side’s lead after the break.
Andreas Weimann lifted the ball beyond Matt Duke, but Carl McHugh headed past Shay Given in the closing stages to give Paul Lambert’s side everything to do at Villa Park.
Lambert made four changes to the side that beat Ipswich in the FA Cup as Weimann, Christian Benteke, Gabby Agbonlahor and Matt Lowton replaced Darren Bent, Marc Albrighton, Jordan Bowery and Eric Lichaj.
Bradford made a bright start but Villa went closest early on after Charles N’Zogbia cut inside the penalty area and forced Duke to parry.
But Benteke twice squandered the chance to put the visitors in front moments later, heading wide when unmarked from a Barry Bannan corner, before latching onto a Fabian Delph pass and rolling the ball harmlessly into Duke’s body.
Villa were punished for their profligacy in the 19th minute after failing to fully clear a corner, as Hines’ 20-yard effort was deflected into the path of Wells, who stroked the ball home past Shay Given.
The Premier League side were almost allowed back into the game nine minutes later as N’Zogbia again ran at the Bradford back four, but his shot was comfortably saved by the busy Duke.
The former Hull City goalkeeper kept out another Benteke effort just before the half-hour mark, but Bradford almost doubled their lead before the break on two occasions.
First, Given pushed a shot wide after the pacey Hines skipped inside left-back Joe Bennett, before James Hanson lost Delph at a corner from Gary Jones, but saw his powerful header cleared off the line, with the hosts going in at the break ahead.
Villa began the second half in the ascendancy and Benteke was again foiled by the Bradford ‘keeper, who kept out the Belgian’s close range diving header before denying Agbonlahor, who connected well with a Bannan cross.
With little more than 30 minutes left to play, Darren Bent was brought on in place of Agbonlahor as Lambert pressed for an equaliser, and almost had an instant impact.
The striker fired over the bar from a narrow angle with one of his first few touches of the ball, before missing a golden opportunity to equalise when Duke saved a shot from N’Zogbia and the ball looped up in front of an open goal, but the England international headed over.
The Premier League side were made to pay for a host of missed chances for the second time as woeful defending from another corner allowed Wells to keep an attack alive for Jones, whose cross was met by a glancing header from McArdle at the near post, which beat Given.
The hosts almost had a third goal when Hanson’s thunderous diving header shook Given’s crossbar, but the visitors scored eight minutes from time as Weimann raced onto a loose ball and lifted it over Duke.
McHugh’s header in the final minute of normal time restored Bradford’s two-goal advantage however, taking the League Two side to within 90 minutes of a Capital One Cup final.