The win catapulted the Warriors back into the NRL's top eigh.
Enjoying a late-career renaissance at age 32, Johnson set up two tries with the boot in an 18-0 first half for the Warriors.
The win ended the side’s three-match losing streak and put it back into the top eight.
Playing as well as ever in his 13th season in the NRL, Johnson came up with two try assists, two forced dropouts and 722 kick metres as the Warriors racked up their sixth win of the season.
The Warriors led 18-0 at halftime.
The Bulldogs quickly responded after the break, with youngster Harrison Edwards barging over from close range in the 45th minute.
Both sides defended strongly for most of the second half, as points were hard to come by.
But the Warriors held their nerve, with a late try to young half Ronald Volkman — his first in the NRL, all but confirming the result.
The Bulldogs scored a consolation try through Jayden Okunbor.