The former Citizens’ midfielder struck against his former club to earn the spoils for the Black Cats, securing a second consecutive win over the champions
Johnson’s goal earned the Black Cats a deserved victory, but City goalkeeper Joe Hart will be bitterly disappointed that he was unable to keep his shot out.
City had the first real chance of the game after 10 minutes, when fit-again captain Vincent Kompany headed against the crossbar from a David Silva corner, with Yaya Toure’s subsequent effort scrambled clear by the home defense.
Sunderland was then grateful to in-form goalkeeper Simon Mingolet for denying Spain attacker David Silva after excellent build-up play from Argentine pair Carlos Tevez and Sergio Aguero.
The former freed Aguero down the left flank, and the ex-Atletico Madrid man reached the byline before finding Silva who connected well on the edge of the six yard box, but he was denied by a superb reflex save from Mingolet.
Next up it was the turn for City keeper Hart to be the hero, as he denied Steven Fletcher as he flew full-stretch to his bottom-right to deny the Scotland striker an opening goal.
A couple of wasted free-kicks aside, that was the nearest the hosts came to scoring in the first half, but just 10 minutes into the second period, they took the lead.
Ex-City midfielder Johnson picked up the ball on the right-hand side of the penalty area and drilled a shot low towards Hart’s near post, which the England man let slip under his out-stretched hand and into the corner of the net.
It was terrible mistake from the usually reliable Hart, but his manager and teammates were furious that a foul on Pablo Zabalata seconds before was not punished by referee Kevin Friend.
From that point on, however, all the pressure was coming from the away side, and it took a fine save from Mingolet from an Aguero drive on the right side of the area to keep the Black Cats in front.
And the Belgium number one was also equal to subsequent efforts from Edin Dzeko and James Milner, before up the other end Hart went someway to redeeming himself with a fine save from Sessegnon after the Benin international was played through one-on-one by substitute Fraizer Campbell.
Sunderland was soaking up City’s pressure well, and trying to hit on the counter-attack. James McClean went close to doubling the lead, but his shot from the left-side of the area was only good enough for the side netting.
And that was the final chance of the game for either side, as City was unable to break through the stubborn wall of Sunderland's defense.