Gabriel Jesus cut Liverpool's 3-0 advantage from the first leg within two minutes, but second-half goals from Mohamed Salah and Roberto Firmino ensured that the Merseyside giants progressed 5-1 on aggregate.
However, City had reason to feel aggrieved after having a seemingly legitimate goal ruled out just before half time with the score at 1-0, with the decision leading to Pep Guardiola being sent to the stands.
City required less than 120 seconds to take the lead over their North-West rivals, with the goal coming from a mistake from Virgil van Dijk. The Dutchman became fixated on trying to win a free kick out of Raheem Sterling but when the referee failed to blow his whistle, City took two passes to tee up Jesus who slotted into the bottom corner from 12 yards.
Liverpool struggled to cope during the early stages of the match, and the visitors were perhaps fortunate to remain with 11 men on the pitch when Sadio Mane's studs made contact with Nicolas Otamendi's stomach, but the winger slipped and it led to just a yellow card being handed out.
City were dominating possession of the ball but they did not create their next clear-cut opportunity until just before the half-hour mark when Kevin De Bruyne sent a first-time effort too close to Loris Karius.
Leroy Sane was getting the better of Trent Alexander-Arnold down the left flank but it was Bernardo Silva who came closest to adding a second for City, with the Portuguese cutting onto his left foot before striking the far post from 20 yards.
However, City should have doubled their advantage just before the break when Sane converted from close range, but despite the ball entering his path through James Milner, the assistant flagged for offside.
The decision left Guardiola incensed and it led to the Spaniard being sent to the stands at the break, but City would have remained confident of finding a second goal after the restart, despite Alex Oxlade-Chamberlain's firing off target from an acute angle just seconds before the half-time whistle.
Liverpool did not read the script, however, and after avoiding alarm in their own penalty area during the first 10 minutes of the second half, the Merseyside outfit found the goal that effectively ended the tie.
Mane found a gap in between Otamendi and Fernandinho - and should have been awarded a penalty after being hauled down - but the ball rolled through to Salah who kept his composure to dink into an empty net with Ederson out of his goal.
The equaliser left City needing four but while the home side continued to probe in the final third, clear-cut chances continued to be few and far between even with the introduction of Sergio Aguero.
Aymeric Laporte saw a long-range strike in anger almost deflected into the top corner by Dejan Lovren but soon afterwards, Liverpool netted a second when Firmino dispossessed Otamendi on the touchline before advancing into the penalty area and finding the inside of the far post.
The Brazilian's 24th strike of the campaign resulted in both clubs going through the motions during the final 10 minutes, with Jurgen Klopp opting to give more game-time to Nathaniel Clyne who has recently recovered from a long-term back injury.
The closing moments of the game passed by without incident and it left Liverpool able to celebrate their place in the semi-finals alongside Roma, who produced one of the greatest ever European comebacks to see off Barcelona at the Stadio Olimpico.
MANCHESTER CITY (3-1-3-3): Ederson; Walker, Otamendi, Laporte; Fernandinho; De Bruyne, Silva (Aguero 66'), Sane; Sterling, Bernardo (Gundogan 74'), Jesus
LIVERPOOL (4-3-3): Karius; Alexander-Arnold (Clyne 81'), Van Dijk, Lovren, Robertson; Wijnaldum, Milner, Oxlade-Chamberlain; Mane, Salah (Ings 89'), Firmino (Klavan 81')