Sydkoreanen Ji spelades fram av Stephane Sessegnon och från ett misttänkt offsideläge rundade han Joe Hart i Citys mål och kunde lägga in bollen i öppet mål samtidigt som klockan tickade över gränsen för de tre tilläggsminuterna.
City gick mållösa av planen för andra matchen i rad och man kommer sannolikt att gräma sig över att man inte kunde kapitalisera på sitt övertag. Edin Dzeko hade flera chanser för gästerna men kunde inte sätta dit bollen.
City behåller fortfarande ligaledningen på målskillnad, men har säkert svårt att glädja sig åt det en helg då argaste rivalen Manchester United också förlorade.
För Sunderland var det tredje vinsten på fem matcher sedan martin O'Neill ersatte sparkade managern Steve Bruce.
Sunderland-Man City 1-0
0-1 Ji 93'
Sunderland: Mignolet, Gardner, O'Shea, Brown, Colback, McClean, Cattermole, Vaughan, Larsson, Bendtner, Sessegnon.
Avb: Carson, Kilgallon, Elmohamady, Ji, Meyler, Noble, Laing.
Man City: Hart, Zabaleta, Lescott, Kompany, Kolarov, Johnson, De Jong, Toure Yaya, Barry, Nasri, Dzeko.
Avb: Pantilimon, Richards, Clichy, Savic, Milner, Silva, Aguero.
93 min. I matchens sista anfall sätter inhopparen Ji 1-0 med bara ett par sekunder kvar av de tre tilläggsminuterna. På reprisbilderna ser Ji ut att vara offside, men domarna friade. Sunderland tar tre poäng av ligaledarna Man City.