City dominated the second half but failed to find a way past Simon Mignolet and a determined if makeshift home defence and were then hit by a sucker punch deep into stoppage time when Stephane Sessegnon played in substitute Ji who rounded Joe Hart before slotting home.
Ji appeared offside when the ball was played, but the flag stayed down.
City therefore fail to take advantage of yesterday's slip-ups from Manchester United, Tottenham and Chelsea but still head the table on goal difference.
Sunderland are up to 13th after their third win in five games under Martin O'Neill.
A late goal from Victor Anichebe gave Everton a 1-0 victory at West Brom on Sunday lunchtime.
The substitute hooked the ball home from close range on 87 minutes after Tony Hibbert's cross into the Baggies box had caused chaos in the home defence.
And that was enough to give the Toffees all three points from a hugely disappointing game, and take them above their opponents in the table.
On Saturday, Manchester United failed to give manager Sir Alex Ferguson the perfect 70th birthday present as they fell to a 3-2 home defeat to bottom club Blackburn, while Chelsea conceded late on twice to lose 3-1 to Aston Villa at Stamford Bridge.
Robin van Persie struck once again as Arsenal claimed a 1-0 win over QPR, while the Gunners' north-London rivals Tottenham were held to a 1-1 draw by Swansea.
Stoke and Wigan played out an entertaining 2-2 draw at the Britannia Stadium, while Bolton and Wolves and Norwich and Fulham played out 1-1 draws.
Sunday's Premier League Results
Sunderland 1-0 Man City
West Brom 0-1 Everton
Saturday's Premier League Results
Man United 2-3 Blackburn
Chelsea 1-3 Aston Villa
Arsenal 1-0 QPR
Swansea 1-1 Tottenham
Bolton 1-1 Wolves
Norwich 1-1 Fulham
Stoke 2-2 Wigan