Derrick Nix had 87 yards rushing and a touchdown for Southern Mississippi (4-1, 2-0 Conference USA), which rebounded from a defeat to Alabama last week to improve to 3-0 all-time against the Black Knights.
Paul Stelzer kicked a pair of field goals -- 31 and 30 yards -- in the second quarter for Army (0-4, 0-2), which has started the season with four consecutive losses for only the fourth time in school history but the second time in the last three years.
Johnson's three-yard touchdown catch from Micky D'Angelo gave Southern Miss a 14-6 lead with 13:21 remaining in the third quarter. Field goals of 19 and 33 yards by Curt Jones pushed the Golden Eagles' advantage to 20-6 going into the fourth quarter.
Dustin Almond ran 14 yards for a touchdown run in the fourth for Southern Mississippi.
D'Angelo, who was sacked twice, completed 13 of 23 passes for 135 yards with a touchdown and interception.
Army's Matt Silva was 16 of 36 for 199 yards. However, he set a school record with six interceptions, breaking the previous mark set by Chris Cagle against Stanford in 1938.
The third-string quarterback, Silva made his first start after starter Reggie Nevels (hamstring) and backup Zac Dahman (groin strain) suffered injuries in Army's first three games.