Early pressure paid off for the home side as they took the lead with a Christian Benteke strike after 24 minutes.
Villa continued to force the issue in the latter stages of the first period, but it remained 1-0 at the break with Bradford still leading on aggregate.
The away side sensationally levelled on the evening after 55 minutes, however, when James Hanson thumped a powerful header into the back of the net.
Both teams had chances in the latter stages and Villa made it 2-1 on the evening through Andreas Weimann, but it was not enough as Bradford advanced 4-3 on aggregate.
Here, Sports Mole dissects the 90 minutes of action from this incredible evening.
On target: 7
On target: 2
Was the result fair?
Looking at the statistics, it would be fair to assume that Aston Villa were the better team this evening. The truth is, they were. They dominated the opening half and might have led 3-0 at the interval, but Bradford showed pure heart throughout the evening to hang in vital periods of the match. The expected response form Villa never surfaced in the second half, with the League Two outfit comfortable for long periods.
Aston Villa's performance
This is a catastrophic result for Villa, make no mistake about that. They rightly took the lead after 24 minutes with a strike from Benteke, but simply could not add that second goal. For large periods it did appear that they would have more than enough to advance, but poor finishing cost them in the final stages. Just what impact this will have on their Premier League season remains to be seen.
The League Two outfit were simply sensational this evening. They were never going to come and attempt to outplay their Premier League opponents, rather sit in and hope to score on the counter. It did appear that their League Cup journey could end following the first period, but they rallied to score and had two fine opportunities to add their second in the latter stages.
Sports Mole's man of the match
Gary Jones: Two 35-year-olds were the standout performers for Bradford this evening. A special mention must go to goalkeeper Matt Duke who made two fine saves in the first period, but Gary Jones was simply sensational as he patrolled the back four. The fact that he was taking a corner in the final stages tells you everything you need to know about his fitness.
Biggest gaffe of the match
The decision not to start Darren Bent must be called into question. You can understand why Paul Lambert leaves the England striker out of league fixtures, but in a match full of chances, there is no better finisher at the club.
Phil Dowd had a successful 90 minutes of action this evening. He was prepared to let the play flow in the correct areas and was unwilling to buckle under pressure from the home supporters. Neither side would have had any complaints about his performance.
Aston Villa: Villa are in FA Cup action away to Millwall on Friday before returning to league duty at home to Newcastle United on January 29.
Bradford: Bradford will attempt to get their league form back on track when they host Wycombe Wanderers in League Two on Saturday.