The 22-year-old goalkeeper spent last season with Norwich City, making 51 appearances while at Carrow Road and keeping 15 clean sheets.
Gunn, who joined the Blues in 2011, never played first-team football for City, despite being on the bench several times.
He signed aged 15 from Norwich, where his father Bryan played for many years and briefly managed.
Gunn has represented England at various levels from Under-16s to Under-21s, winning 11 caps with the latter.
He was also called into Gareth Southgate’s senior squad for the friendly against Brazil in November 2017 and will hope to continue his progression at Southampton.
Everybody at Manchester City wishes Angus the very best in his future career.