The Black Cats where good value for their win, having had a few good chances including hitting the bar, but left it until the final minute for Johnson to get the winner.
It was Johnson's third goal in four games against Newcastle.
The home side were the better side during the opening 15 minutes with Moussa Sissokho having the best early chance but shot straight at Sunderland keeper Costel Pantilimon.
Sunderland came close to scoring when Steven Fletcher volleyed Sebastian Larsson's through ball onto the bar.
Connor Wickham had chances but wasted two good headers and should have done better.
In the second half Sunderland nearly capitalised when Taylor was off the pitch receiving treatment but Jordi Gomez wasted a great chance and blasted the ball over from 12-yards.
With Newcastle putting on the pressure, Sunderland nearly hit them on the break but Johnson couldn't curl his effort enough to find the far post.
Sissokho nearly found the late goal but Pantilimon saved.
And from there, Sunderland raced up the other end to score the winner.
After a fast break, William Buckley set-up Johnson in the box who made no mistake to rifle home and earn his side the three points.