West Brom won 1-0 on the night at the Hawthorns to level the tie at 2-2 on aggregate thanks to Craig Dawson's first half header.
However, the Baggies' hopes of an immediate return to the top-flight were dented when captain Chris Brunt was sent-off 10 minutes from the end of normal time.
The hosts held out manfully during extra-time, but Villa goalkeeper Jed Steer saved West Brom's first two penalties of the shootout from Mason Holgate and Ahmed Hegazi.
Conor Hourihane, Mile Jedinak, Jack Grealish and Tammy Abraham kept their cool from the spot as Villa set up a Wembley meeting with Leeds or Derby on May 27th for a lucrative place in the Premier League.
Marcelo Bielsa's Leeds hold a 1-0 first leg leads over Frank Lampard's Rams ahead of the second leg at Elland Road on Wednesday.