He rushed for 155 yards on 39 carries and scored once on two receptions for 26 yards.
Damon Huard threw a touchdown pass on 17-for-25 passing for 312 yards and Lawrence Tynes kicked two field goals for the Chiefs (4-3), who are over .500 for the first time this season -- and won despite blowing a 13-point halftime lead.
Kansas City has won four of its last five games.
Johnson became the eighth player in Chiefs' history to gain at least 3,000 yards for his career, and Huard was a last minute starter because of a groin injury.
Seneca Wallace, playing for the injured Matt Hasselbeck, was 15-for-30 for 198 yards, three touchdowns and two interceptions. Jerramy Stevens, Darrell Jackson and D.J. Hackett caught scoring passes for the Seahawks (4-3), who have lost three of their last four games.