Saints were in the contest for over an hour after Aymeric Laporte’s own goal levelled the score following Raheem Sterling’s opener for City.
However, Pep Guardiola’s City secured their place in the FA Cup semi-finals thanks in part to a string of Southampton errors.
Mohammed Salisu was reckless in his needless foul on Gabriel Jesus, who was felled in the box and City were rightly awarded a penalty which Kevin de Bruyne tucked away to give his side the lead for the second time.
That was the second costly defensive error of the game after Jack Stephens laid on Sterling’s goal on a plate early in the first half.
Ralph Hasenhuttl’s Southampton then had the chance to equalise. Che Adams, a second-half substitute, had a golden opportunity to level but hit his shot straight at goalkeeper Zack Steffen.
City then turned the screw with two goals in quick succession to ensure they were booking a trip to Wembley Stadium.
Substitute Phil Foden blasted home a left-footed strike from distance to make it 1-3 to the visitors with just 15 minutes remaining. Fellow sub Riyad Mahrez then made it four for City when he slid his shot in at the near post three minutes later.
Saints were competitive throughout the contest, just like they were in their two draws in the Premier League against City this season, but were undone by poor defending and wasteful finishing.
Southampton (4-4-2): Forster; Livramento, Stephens, Salisu, Walker-Peters; S. Armstrong (Djenepo 83’), Romeu (Smallbone 88’), Ward-Prowse, Elyounoussi (Diallo 88’); A. Armstrong (Adams 63’), Long (Broja 63’)
Unused subs: Caballero, Redmond, Perraud, Valery
Goals: Laporte OG (45’)
Manchester City (4-3-3): Steffen; Walker, Stones, Laporte (Ake 83’), Cancelo (Zinchenko 82’); De Bruyne, Rodri (Fernandinho 83’), Gundogan; Gabriel Jesus (Mahrez 63’), Grealish (Foden 64’), Sterling
Unused subs: Carson, Bernardo Silva
Goals: Sterling (12’), De Bruyne (62’ pen), Foden (75’), Mahrez (78’)