Ibrahima Konate netted the semi-final's first goal after nine minutes, as Sadio Mane then struck twice to give Jürgen Klopp's men a 3-0 advantage at half-time.
Jack Grealish and Bernardo Silva reduced the deficit in the second period, but the Reds held on to secure their spot in the tournament's showpiece for the first time since 2012.
The seven-time winners will now face either Chelsea or Crystal Palace at Wembley on May 14.
Team news
Klopp opted to make seven changes for the contest, with Trent Alexander-Arnold, Andy Robertson and Virgil van Dijk returning the backline. Thiago Alcantara and Fabinho were in the midfield, as Mohamed Salah and Mane started up top.
Liverpool: Alisson, Alexander-Arnold, Konate, Van Dijk, Robertson, Fabinho, Thiago (Jones, 87), Keita (Henderson, 73), Diaz (Firmino, 84), Mane (Jota, 84), Salah.
Unused substitutes: Kelleher, Milner, Gomez, Tsimikas, Matip.
First half
Liverpool started well and earned themselves a two-goal lead after just 17 minutes of play.
Continuing his potency from corners, Konate outjumped Nathan Ake from Andy Robertson's delivery and thrashed a powerful header to open the scoring.
The second then arrived courtesy of the Reds' high press that caused their opponents issues from the start.
City goalkeeper Zack Steffen took too long with John Stones' pass back, inviting Mane to close him down with a sliding challenge that diverted the ball into the back of the net.
It was a similar story for the rest of the half, and the team in charge would add to their lead a minute before the half-time break.
A well-worked Liverpool move ended with a scooped Thiago pass to the right of the penalty area that found Mane, who hit a drilled volley that beat Steffen at his near post.
Second half
Neither side made a change at the interval, but the Reds' advantage would be reduced early into the second period.
Gabriel Jesus turned inside the box, beating Fabinho and squared to the free Grealish. The City No.10 made no mistake with his opportunity in front of goal.
With City searching for a route back into the game, Alisson Becker was called upon twice to deny Jesus in one-v-one situations.
At the other end, Salah pounced on Oleksandr Zinchenko's underpowered header back to goal, though the Egyptian’s dinked finish was just off target.
There was to be a tense finish when Bernardo tapped in at the back post to make it 3-2 just as four minutes of injury time had been allocated.
Alisson had to save from Raheem Sterling, while Roberto Firmino went close to adding a fifth, but the final whistle arrived to confirm Liverpool's return to Wembley next month.
Attendance: 73,793