Johnson, who had not played for the national team since 2010, rose to head home Graham Zusi's cross in the 20th minute.
Dexter Blackstock levelled five minutes later but Johnson finished off a neat move with another header in the 90th minute to ensure three points for America, which moved to the brink of advancing to the next round.
Also in Group A, Guatemala beat Jamaica 2-1, giving it an identical record to America atop the standings.
Carlos Figueroa opened the scoring after 16 minutes, Luton Shelton levelled from the spot just after the hour mark and Carlos Ruiz sealed the points for the host five minutes from the end.
With one match to play in the round, Guatemala and USA, who face each other in at Livestrong Sporting Park in Kansas City on Webnesday (AEDT), lead Jamaica by three points.
Costa Rica won 1-0 in El Salvador to leapfrog its opponent into second place in Group B and move to the brink of advancing.
Jose Cubero scored the only goal after 31 minutes for Costa Rica which, with a two-point lead over El Salvador, hosts winless Guyana in its final group game while its rivals travel to Mexico.
El Salvador had Eliseo Quintanilla and Alfredo Pacheco sent off in the closing moments.
Mexico, which was already sure to advance, maintained its 100 per cent record as it scored five times in 10 minutes after playing out nearly 80 goalless minutes to win 5-0 in Guyana.
Andres Guardado started things off in the 77th minute and Angel Reyna completed the scoring in the 86th minute, with further goals coming from Oribe Peralta, a Charles Pollard own goal and Javier Hernandez in between.
Panama spurned the chance to advance from Group C as it could only draw 0-0 with Honduras.
It remains top on goal difference ahead of Canada, which beat Cuba 3-0 with goals from Tosaint Ricketts (14), Will Johnson (73) and David Edgar (79).
Cuba's Roberto Linares was sent off after 70 minutes, with Canada's Olivier Occean joining him three minutes later.
Panama and Canada lead by two points from Honduras, with Panama hosting pointless Cuba on Wednesday. Canada goes to Honduras.