Despite a more resounding scoreline, City also struggled for the first hour at St. Mary's as a Southampton side that held the English champions twice in the league this season caused them problems once more.
"We started really well and then we forgot to play," said Guardiola. "We know it's so difficult because Southampton are one of the best organised teams."
Adam Armstrong hit the post early on for the Saints, but just seconds later Raheem Sterling opened the scoring with a cool finish from Gabriel Jesus' pass.
Ilkay Gundogan then hit the woodwork for City, but Southampton got the equaliser their first-half performance deserved when Aymeric Laporte deflected Mohamed Elyounoussi's cross into his own net.
With the tie delicately poised, Southampton's good work was undone when Mohammed Salisu needlessly dived in on Jesus to concede a penalty.
Fraser Forster got a hand to Kevin De Bruyne's spot-kick but could not keep it out.
City's strength in depth off the bench then took the game away from the hosts as substitutes Phil Foden and Riyad Mahrez produced lethal finishes to round off the scoring.