Tim Sherwood’s side will now face Arsenal in next month’s final but found themselves a goal behind on the half hour mark as PFA Player of the Year nominee Philippe Coutinho opened the scoring.
Villa responded just six minutes later as Fabian Delph crossed for the in-form Christian Benteke, who fired his ninth goal in his last six matches.
The turnaround was complete in the 54th minute when Benteke and Jack Grealish combined to release Delph, who fired past Simon Mignolet to give his side the lead.
Liverpool pressed for an equaliser as the game wore on and Steven Gerrard, making his final FA Cup appearance for the club, thought he had levelled the scores with just minutes remaining only for his header to be cleared off the line by Kieran Richardson.
There were four minutes added on at the end of normal time and Mario Balotelli had one final chance but his header flew over the bar as Villa held on to reach next month’s final.
Both sides seemed to settle into their stride quickly on the big Wembley pitch but it was Liverpool who created the first opening as Coutinho rolled the ball into the path of Joe Allen, but the Welshman, leaning back, fired his shot over the bar.
Aston Villa roared back at Liverpool though as Charles N’Zogbia, playing in place of the injured Gabriel Agbonlahor, rifled a shot towards the top corner to force Simon Mignlot into a smart save.
Villa‘s momentum was halted when they were were forced into a change in the 26th when the injured Nathan Baker was replaced by Jores Okore and it certainly seemed to disrupt Sherwood’s side.
Liverpool started to build pressure and it eventually paid in the 30th minute when Coutinho, who sealed his side’s place in the semi-final at Blackburn, capitalised on errors from substitute Okore and Delph to burst through the Villa defence to curl a deflected shot beyond Shay Given and into the far corner.
However, Villa responded in perfect fashion as Delph played a one-two with Grealish before pulling the ball back to Benteke, who side-footed the ball past Mignolet into the bottom corner.
Rodgers was obviously not happy with what he saw from his side during the first 45 minutes and threw on Balotelli for the ineffective Lazar Markovic.
But it did not have the desired effect as Villa continued to press forward and they got their reward when Benteke’s back heel fell into the path of Grealish. The 19-year-old released Delph, who cut inside Lovren and fired his shot past Mignolet.
It was the least Villa deserved and they could have doubled their advantage eight minutes later as the ball fell to Richardson on the edge of the box, but he could not hit the target with his curling effort.
Liverpool had no answer to Villa’s work-rate and Sherwood’s men were re-energised by Ashley Westwood’s superb block from Joe Allen’s shot.
The ball eventually broke to Delph, who just over-hit his pass, allowing Alberto Moreno to make a vital challenge when Benteke was through on goal.
It was a glorious chance for Villa to wrap up victory and it led to a nervy final 10 minutes. They were nearly made to pay when Gerrard, who was aiming to leave Liverpool by lifting the FA Cup, connected with Coutinho’s corner but his header was cleared off the line by Richardson.
Balotelli then thought he was through on goal but the linesman’s flag was raised when replays clearly showed the Italian striker was onside.
The former Manchester City man had one final chance to rescue Liverpool’s afternoon but it was to be Aston Villa’s day as his free header flew over the cross bar.
The Villa end erupted in celebration and they will now face holders Arsenal on May 30 at Wembley for the chance to lift their first major honour since the League Cup in 1996, but first Sherwood’s side face five games in the Premier League – starting at Manchester City next week – as they bid to stay in the top flight.