Instead of captain Steven Gerrard ending his Liverpool career on his 35th birthday in the May 30 FA Cup final, Villa will contest the showpiece against Arsenal for the first time in 15 years.
Philippe Coutinho put Liverpool ahead in the semifinal but Fabian Delph set up Christian Benteke's equalizer and then scored himself to secure a 2-1 victory.
"Not a lot of people gave us a chance coming here to play against Liverpool," Villa manager Tim Sherwood said. "We will be the underdog (in the final). The pressure's on Arsenal to win the cup. They're the holders."
Villa wants to return to Wembley Stadium next month still a Premier League team. Sherwood's side is only four points above the relegation zone with five games remaining.
Liverpool had hoped to be mounting another title challenge after last season's runner-up finish, but might now have to settle for fifth place. City strengthened its grip on the fourth Champions League spot by beating West Ham 2-0 on Sunday to halt a two-game losing run, with Sergio Aguero netting his 20th league goal.
Tottenham striker Harry Kane joined Aguero at the top of the league scoring leaderboard by completing a 3-1 victory for his sixth-placed team at Newcastle. With 30 goals now in all competitions in his breakthrough season, the 21-year-old Kane is the first Tottenham player since Gary Lineker in 1992 to be as prolific.
But the goals haven't been enough for manager Mauricio Pochettino to restore Tottenham to the top-four in his first season while Pochettino's predecessor, Sherwood, has made an immediate impact in his first two months in charge of Villa.
Sherwood first took Villa out of the drop zone and now there is a chance of a first trophy for the 1982 European Cup winners since the 1996 League Cup. Villa won the last of its seven FA Cups in 1957 and lost the 2000 final to Chelsea.
Prime Minister David Cameron, a Villa fan, broke off from the general election campaign to congratulate the team, tweeting: "A tremendous achievement."
Villa fought back from the blow of conceding to Coutinho, who started and completed the move for the opener. Lazar Markovic played in Raheem Sterling, who fed Coutinho to shot past Shay Given.
Within six minutes, Villa was level. Fabian Delph played a one-two with Jack Grealish before setting up Benteke to sidefoot home from 12 yards (meters).
Villa was the more dynamic, energetic side, pressuring Liverpool and another goal just seemed to be a matter of time. It came nine minutes into the second half.
Delph picked out Benteke from the halfway line and the Belgium striker deftly back-heeled the ball to Grealish, who threaded it through for Delph to strike through a congested area into the net.
Gerrard, who is joining the Los Angeles Galaxy at the end of the season, tried to single-handedly rescue his final dream. The midfielder, who has spent his entire career at Liverpool, sent a free kick straight into Given's arms in the 80th minute then had a header cleared off the line by Kieran Richardson.
Mario Balotelli did put the ball in the net but it was ruled out for offside — summing up his misfortune at Liverpool this season.
"I thought we were second best today to be honest, they were better than us," Rodgers said.
Like Liverpool, City has been on the slide since winning the title last season — with six losses in eight games before beating West Ham.
It was a fortuitous opener, as West Ham's James Collins accidentally lobbed his own goalkeeper, Adrian, in the 18th after an attempted interception went wrong. The second was slicker with Sergio Aguero exchanging passes with Jesus Navas before netting his 20th league goal of the season in the 36th.
There was a blow for City with David Silva taken to hospital with a suspected broken cheek bone and collarbone after a clash with Cheikhou Kouyate in the second half.
Silva later tweeted: "All the tests have gone well and I'm already home."