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.
Kim Kardashian, Kanye West reportedly set wedding date
Boston schools pull out free condoms over wrapping complaints