After spotting the Goats an early lead, Johnson netted the equalizer for Seattle in the 29th minute, heading home an accurate set-up from Christian Tiffert.
Chivas nearly took the lead in the second half on a shot that Brad Evans banged off the post, which allowed Johnson to decide the contest on another header -- this one set up by Fredy Montero -- in the 89th.
Seattle (13-6-8) extended its unbeaten streak to four games and grabbed sole possession of second place in the West, six points in back of the first-place San Jose Earthquakes.
Nick LaBrocca score for Chivas (7-12-7), which fell for the third time in four games and is likely to miss the playoffs.
Costly malfunction causes beer flood at Boston-area brewery
Video of Victoria’s Secret models trying to 'twerk' hits Instagram