Nehki Wells, Rory McArdle and Carl McHugh scored for the hosts at a raucous Valley Parade, with Andreas Weimann replying for Villa, as the Yorkshire club closed on a first major final since their FA Cup success in 1911.
Bradford have already accounted for Wigan Athletic and Arsenal in this season's competition and are bidding to become the first team from the English fourth division to reach the League Cup final since Rochdale in 1962.
Ahead of the return leg at Villa Park on January 22, Paul Lambert's Villa face the prospect of yet another disappointment in a sorry season in which they have sunk to within a point of Premier League relegation.
Villa made four changes to the team that beat Ipswich Town 2-1 in the FA Cup on Saturday, with Christian Benteke recalled in place of Darren Bent, and the visitors were soon on the front foot.
Charles N'Zogbia twice tested home goalkeeper Matt Duke in the opening 12 minutes, while Benteke headed off target from corners on two occasions.
Duke was called into action to save from Benteke after Fabian Delph threaded a pass down the inside-left channel, before Bradford took the lead from their first real sight of goal.
Zavon Hines' volley from a Bradford corner flicked off a Villa defender before landing in the path of Wells and, with defenders vainly appealing for offside, the 22-year-old Bermudan kept his cool to beat Shay Given.
Villa stirred, Duke pushing aside a 30-yarder from Benteke, but Bradford refused to retreat and the first half belonged to them.
McArdle made it 2-0 with a powerful header from Gary Jones' left-wing corner and Hanson came within inches of putting Bradford three goals up moments later, only for his header to hit the bar.
It looked set to be a telling let off, as Weimann bravely beat Duke in the 82nd minute to give Villa hope, only for McHugh's 88th-minute bullet header to restore Bradford's two-goal lead and leave their fans dreaming of Wembley.