League Two Bradford lost 2-1 at Aston Villa but won 4-3 on aggregate to move into the League Cup final at the expense of the Premier League strugglers.
Villa, trailing 3-1 from the first leg, dominated the first half and took a deserved lead through Christian Benteke’s fine volley on 24 minutes.
But they should have been out of sight when towering striker James Hanson exploited poor marking to head the Bantams level early in the second half.
Paul Lambert’s side lost their way before rallying but, while Andreas Weimann added a second late in the match, Bradford held out for a famous win and a third Premier League scalp en route to Wembley.
Bradford are only the second fourth-tier side to reach the League Cup final, after Rochdale in 1962, and they will face either Chelsea or Swansea at Wembley, with the Welsh side leading the Blues 2-0 from the first leg of their semi.
They beat Wigan and Arsenal on penalties in the earlier rounds, and the damage was done this time out after their stunning victory at Valley Parade.
Villa went for the visitors from the off, as they launched wave after wave of attacks. Benteke was initially profligate with his finishing, failing to put three headers on target from good Charles N’Zogbia deliveries, while Fabian Delph also went close with a long-range effort.
It was main man Benteke who broke the deadlock midway through the first half, this time meeting a cross from Joe Bennett with a flying volley past Matt Duke.
Villa were rampant but unable to add to their lead before half-time as Duke made smart saves from Stephen Ireland and NZogbia, while Benteke twice headed off target from excellent deliveries from Barry Bannan and Ireland.
But Bradford are dangerous on the counter attack, and they reminded Villa of their threat when Nakhi Wells fired inches wide after carving out an opportunity from the right.
The Villa onslaught continued after the break but it was Bradford who scored next, very much against the run of play.
Zavon Hines had done well to win a corner, with Gary Jones’s initial delivery headed behind by Benteke; his next ball in was met by the inexcusably unmarked Hanson – Bradford’s main threat in the air – who buried his towering header with aplomb.
Suddenly the inexperienced hosts were all over the place, as Hanson missed a gilt-edged chance by putting another header wide, although the direction of the ball had been vitally altered by a touch from Ciaran Clark.
Villa eventually got their collective act together though, with Ireland putting inches wide after a fine cross by substitute Darren Bent, although the commitment to attack left holes for Bradford to exploit.
One such counter attack saw substitute Garry Thompson hit the crossbar with a flying volley, while another was foiled by Ron Vlaar’s important challenge on Wells.
With time running out Villa did throw the cat among the pigeons when Austrian youngster Weimann latched on to a towering header from Bent, rounding Duke to make it 2-1 on the night.
Villa needed a third to force extra time and they threw everything at Phil Parkinson’s side, but Duke was not tested in injury time as the hosts heeded their supporter’s cries to play it long.
Such an aimless approach rarely works when the opposition is defending with 11 men, and when a long ball was headed clear the visitors used the opportunity to win a corner and wind down the clock accordingly.
It is the first time a team from England’s fourth tier has beaten three top-flight sides in a Cup run, with another Premier League team in wait after the next semi-final on Wednesday.
Swansea are in pole position to qualify, but Chelsea are capable of thrashing anyone on their day – whoever Bradford face, it will be a historic occasion as they seek to better QPR and Swindon’s feats of winning the tournament from the third tier in 1967 and 1969 respectively.
Villa, meanwhile, must turn their attention to a relegation dogfight as boss Lambert finds himself under increasing pressure, not helped by his ostracism of England striker Bent.