Bradford became the first fourth-tier side in over 50 years to reach the League Cup final as they secured a 4-3 aggregate victory over Aston Villa.
The Bantams bridged the gap between the bottom division of English league football and the Premier League to secure a place at Wembley, despite a 2-1 second-leg defeat.
Another chapter will now be written in one of the most remarkable football stories of recent times as Phil Parkinson's League Two side will face either Swansea City or Chelsea on 24 February.
Bradford may have lost on the night but they stubbornly protected a 3-1 first-leg advantage to emulate a feat last achieved by Rochdale in 1962.
Christian Benteke's first-half goal was just reward for Villa's undoubted superiority but Bradford managed to survive without further damage until half-time, before scoring the goal that takes them to Wembley for the first time since 1996.
James Hanson, the striker who used to stack shelves in a supermarket, flashed a superb header past Shay Given from Gary Jones's corner 10 minutes after the break.
The Bantams could have wrapped up matters earlier as Hanson missed an open goal and substitute Garry Thompson hit the woodwork - before Andreas Weimann set up a nerve-shredding four minutes of stoppage time with a late goal for Villa.
It was their winner on the night but nothing could stop an explosion of joy in the top tier of Villa Park's North Stand when referee Phil Dowd blew the final whistle that sent Bradford City to Wembley.
Villa may have won this game but there was nothing in the way of solace for the home side's fans as they turned furiously on manager Paul Lambert and his players at the final whistle.
Bradford's players and staff celebrated in front of their ecstatic fans, who have now seen their side beat Premier League opposition in Wigan Athletic, Arsenal and Villa on the way to Wembley.
In an era when prizes so often go to clubs with the biggest budgets, Bradford's progress to a major cup final - having last won one when they claimed the FA Cup in 1911 - provides a gloriously unpredictable sub-plot to the season.
Bradford would have been braced for an early assault from Villa as they tried to cut the deficit - and so it proved as they struggled to control the physical presence and aerial threat of Benteke, who headed straight at Bradford keeper Matt Duke when he should have done better.
"Bradford dared to dream. They were helped by Villa, who were very naive in the second half, but don't take anything away from the Bantams. They played very good football and were brilliant at set-pieces. My words aren't good enough for them. As for Villa, there will be questions about Paul Lambert's future, but Randy Lerner understands the job he is doing."
Duke saved from Gabriel Agbonlahor on the turn before Benteke finally made the breakthrough after 24 minutes. He made a difficult finish look easy as he flicked Joe Bennett's cross high past Duke.
The goalkeeper distinguished himself with two more saves from Charles N'Zogbia and Stephen Ireland, Bradford's only response a curling 20-yard effort from Nahki Wells that flew wide.
For all their toils of the first half, Bradford were still protecting a precious advantage at the start of the second half. They were soon to extend it over the two ties.
Bradford had preyed on Villa's inability to defend set pieces, corners in particular, in their first-leg win and took advantage of the weakness again as Hanson equalised to restore their two-goal aggregate lead.
Ron Vlaar's presence was supposed to help cure Villa's Achilles heel but he lost Hanson at Gary Jones's corner, allowing the striker to power a header past Shay Given.
As Villa reeled from the blow, Hanson wasted a wonderful chance to push Bradford even closer to Wembley when he misjudged a header from six yards out after Nathan Doyle's cross.
Bradford, growing in confidence with Wembley coming into view, came even closer with 18 minutes left when substitute Thompson connected crisply with his first touch, only to see it bounce back off the bar with Given beaten.
Weimann's goal gave Villa hope, but their second-half performance was that of a team drained of belief and confidence - and Bradford had defied the odds and logic once more.
- 01 Given
- 04 Vlaar
- 06 Clark Booked
- 27 Bennett (Weimann - 70' )
- 34 Lowton
- 07 Ireland
- 10 N'Zogbia Booked
- 16 Delph Booked
- 25 Bannan (Bent - 62' )
- 11 Agbonlahor
- 20 Benteke
- 22 Guzan
- 29 Stevens
- 30 Lichaj
- 40 Carruthers
- 09 Bent
- 14 Holman
- 26 Weimann
- 12 Duke
- 02 Darby
- 16 McHugh
- 23 McArdle
- 27 Good
- 14 Atkinson
- 18 Jones
- 24 Doyle
- 09 Hanson
- 20 Hines (Thompson - 71' )
- 21 Wells (Turgott - 87' )
- 01 McLaughlin
- 22 Nelson
- 04 Ravenhill
- 07 Reid
- 11 Thompson
- 26 Turgott
- 17 Connell
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +2:40
Short corner worked by Will Atkinson.90:00 +2:05
Will Atkinson takes the direct free kick.90:00 +2:05 Booking
Booking The referee books Fabian Delph for unsporting behaviour.90:00 +2:00
Fabian Delph gives away a free kick for an unfair challenge on Garry Thompson.90:00 +0:14
Outswinging corner taken left-footed by Charles N'Zogbia from the left by-line, Ciaran Clark has a headed effort at goal from close in which goes wide right of the target.88:30
Assist by Darren Bent.88:30 Goal scored
Goal! - Andreas Weimann - A Villa 2 - 1 Bradford Goal scored by Andreas Weimann from inside the box to the bottom left corner of the goal. Aston Villa 2 (3)-(4) 1 Bradford.86:13 Substitution
Substitution (Bradford) makes a substitution, with Blair Turgott coming on for Nahki Wells.83:46
Outswinging corner taken from the right by-line by Gary Jones, clearance by Ron Vlaar.82:23
Free kick taken by Matt Duke.82:23 Booking
Booking Charles N'Zogbia goes into the book for unsporting behaviour.82:18
Nathan Doyle fouled by Charles N'Zogbia, the ref awards a free kick.79:09
Gary Jones takes the outswinging corner, James Hanson challenges Matthew Lowton unfairly and gives away a free kick. Matthew Lowton takes the direct free kick.78:44
The assistant referee flags for offside against Darren Bent. Matt Duke takes the indirect free kick.77:09
The referee blows for offside. Indirect free kick taken by Matt Duke.72:51
Garry Thompson takes a shot.71:51
Free kick awarded for a foul by James Hanson on Ron Vlaar. Free kick taken by Ron Vlaar.70:09 Substitution
Substitution Garry Thompson on for Zavon Hines.69:51 Substitution
Substitution Joe Bennett leaves the field to be replaced by Andreas Weimann.
Fabian Delph has an effort at goal from outside the area which misses left.67:04
Stephen Ireland produces a right-footed shot from deep inside the six-yard box which goes wide of the right-hand post.62:40
Close range headed effort by James Hanson goes wide of the left-hand upright.61:28 Substitution
Substitution Darren Bent replaces Barry Bannan.60:27
Zavon Hines takes a shot. Save by Shay Given.58:58
Inswinging corner taken by Charles N'Zogbia, Headed effort from inside the area by Christian Benteke misses to the left of the target.57:25
Effort from outside the penalty box by Joe Bennett goes wide right of the goal.54:07
The assist for the goal came from Gary Jones.54:07 Goal scored
Goal! - James Hanson - A Villa 1 - 1 Bradford James Hanson scores a headed goal from deep inside the penalty area. Aston Villa 1 (2)-(4) 1 Bradford.53:55
Corner taken by Gary Jones from the right by-line,53:20
Corner taken right-footed by Gary Jones from the right by-line, clearance made by Christian Benteke.52:45
Free kick awarded for a foul by Christian Benteke on Stephen Darby. Matt Duke restarts play with the free kick.52:06
Charles N'Zogbia takes a shot. Blocked by Curtis Good.51:17
Fabian Delph fouled by Zavon Hines, the ref awards a free kick. Shay Given restarts play with the free kick.49:55
Free kick awarded for an unfair challenge on Joe Bennett by James Hanson. Joe Bennett restarts play with the free kick.47:36
Carl McHugh concedes a free kick for a foul on Christian Benteke. Ron Vlaar produces a shot on goal direct from the free kick.45:01
The referee gets the second half started.45:00 +1:09 Half time
Half Time The first half comes to an end.45:00 +0:34
Fabian Delph has an effort at goal from outside the box which goes wide left of the goal.44:28
Nahki Wells has an effort at goal from outside the box which misses left.44:04
Close range effort by Christian Benteke misses to the left of the target.37:23
Corner taken left-footed by Barry Bannan from the left by-line, Headed effort from deep inside the penalty area by Christian Benteke misses to the left of the goal.37:05
Effort on goal by Stephen Ireland from 20 yards. Matt Duke makes a save.35:29
Nathan Doyle challenges Charles N'Zogbia unfairly and gives away a free kick. Charles N'Zogbia takes the free kick.33:27
Unfair challenge on Nathan Doyle by Charles N'Zogbia results in a free kick. Nathan Doyle takes the direct free kick.32:23
Inswinging corner taken by Barry Bannan.32:04
Outswinging corner taken by Barry Bannan from the left by-line.31:45
Charles N'Zogbia takes a shot. Save by Matt Duke.30:32
Barry Bannan fouled by Will Atkinson, the ref awards a free kick. Direct free kick taken by Ron Vlaar.28:29
Inswinging corner taken from the right by-line by Barry Bannan.26:49
The assistant referee signals for offside against Stephen Ireland. Free kick taken by Matt Duke.25:27
Nahki Wells has an effort at goal from outside the box which goes wide left of the target.23:01
Joe Bennett provided the assist for the goal.23:01 Goal scored
Goal! - Christian Benteke - A Villa 1 - 0 Bradford Christian Benteke finds the net with a goal from deep inside the penalty box to the top left corner of the goal. Aston Villa 1 (2)-(3) 0 Bradford.21:11
Free kick taken by Rory McArdle.21:11 Booking
Booking Booking for Ciaran Clark.21:00
Free kick awarded for a foul by Ciaran Clark on James Hanson.19:48
Gabriel Agbonlahor takes a shot. Save made by Matt Duke.15:42
Effort from just outside the area by Fabian Delph goes over the target.15:04
Christian Benteke takes a shot. Save by Matt Duke.9:19
Unfair challenge on Zavon Hines by Joe Bennett results in a free kick. Gary Jones delivers the ball, Headed effort from deep inside the area by James Hanson misses to the right of the target.6:44
Stephen Darby gives away a free kick for an unfair challenge on Gabriel Agbonlahor. Free kick taken by Joe Bennett.5:26
Charles N'Zogbia delivers the ball, Close range header by Matthew Lowton goes over the crossbar.3:40
Nathan Doyle concedes a free kick for a foul on Christian Benteke. Direct free kick taken by Barry Bannan.2:40
Headed effort from deep inside the area by Christian Benteke misses to the right of the target.0:15
Foul by Fabian Delph on Zavon Hines, free kick awarded. Free kick crossed right-footed by Gary Jones from right wing.0:00
The game kicks-off.
Live data and text provided by our data suppliers