The Bantams join Rochdale as the only fourth-tier team to reach a League Cup final, despite a late winner from Andreas Weimann, and will play either Swansea or Chelsea
Christian Benteke gave the Villans an early lead, but James Hanson thundered a second-half header home to equalise for the Bantams and restore their two-goal aggregate lead.
Phil Parkinson saw his side hold on for victory, despite Andreas Weimann's strike and Bradford will compete their first cup final in 101 years.
The hosts picked a strong side, including the likes of Benteke and Ron Vlaar, while the bantams were unchanged from the first leg.
Matthew Lowton wasted an early chance as he was unable to keep his header down despite being only a few yards out, following a knock-down from Benteke.
The Belgian then had a header of his own but could only direct it into the arms of goalkeeper Matt Duke before Fabian Delph's long-range effort flew over the bar.
Villa were a constant threat and it was no surprise that they were one up after 23 minutes. Joe Bennett delivered an inch-perfect cross and Benteke volleyed past Duke with the side of his foot.
Stephen Ireland had the ball in the back of the net four minutes later following a run from Bennett but the goal was chalked off for offside.
Duke was once again in fine form and 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 but bobbled inches wide.
Bradford almost equalised with their first chance of the game just before the break through a fine curling attempt from Nahki Wells - the ball beat an outstretched Shay Given but also the post.
The Bantams equalised on the night and extended their lead overall after 55 minutes with a brilliant header from Hanson as he rose above Vlaar and thumped Gary Jones' corner into the net from eight yards.
Bradford were in the ascendancy and Hines forced Given before Hanson's header coming off the top of his head and out for a goal kick.
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.
Substitute Garry Thompson nearly added further misery to the home side but his first time effort struck the crossbar after more good work on the right from Hines.
Weimann scored a late winner for Villa on the night, 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 face the winners of Swansea and Chelsea at Wembley, who play on Wednesday.