Bradford City continued their brilliant run in the League Cup, progressing to the final despite a 2-1 loss to Aston Villa on Tuesday.
Trailing 3-1 after the first leg in Bradford, Christian Benteke gave Villa the momentum with a 23rd-minute strike, but James Hanson restored Bradford's two-goal aggregate buffer with a goal 10 minutes into the second half.
Andreas Weimann ensured a few nervy moments for the visitors with an 89th minute goal, but Bradford held on to post a 4-3 win on aggregate to become the first fourth-tier team to reach the League Cup final since 1962.
Villa started the brighter of the two as they tried to overcome the two-goal deficit and Benteke was involved in numerous chances inside the first 20 minutes.
The home side were a constant threat and it was no surprise that they were 1-0 up after 23 minutes. Joe Bennett delivered an inch-perfect cross and Benteke volleyed past Bradford goalkeeper Matt Duke with the side of his foot.
Stephen Ireland had the ball in the back of the net four minutes later following a mazy run from Bennett but the goal was chalked off for offside.
Duke was continuing his fine performance from the first leg. He produced a brilliant one-handed stop to deny Charles N'Zogbia from range before doing the same from an Ireland effort.
A minute before half-time and it should really have been 2-0. Rory McArdle misjudged an Ireland cross into the box and the ball flicked off Benteke and inches wide of the post.
Bradford almost equalised with their first chance of the game just before the break through a fine curling attempt from Nahki Wells, but the ball flew wide.
Bradford equalised on the night and extended their lead overall after 55 minutes with a brilliant header from James Hanson.
Zavon Hines beat Joe Bennett down the right and won a corner - their first of the night. Benteke cleared it for a second corner and Gary Jones' delivery beat the Belgian and Ron Vlaar but not Hanson who powered the ball home.
Ireland almost pulled one back for Villa after fine work from substitute Darren Bent to play him in but he could only shoot wide from six yards out.
Andreas Weimann scored a late winner for Villa, rounding Duke following a flick on from Bent, but it was too little too late.
Phil Parkinson's side held on for a famous victory over two legs and will meet either Swansea or Chelsea, who play on Wednesday.