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, who moved to the brink of advancing to the next round.
Also in Group A, Guatemala beat Jamaica 2-1, giving them 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 hosts five minutes from the end.
With one match to play in the round, Guatemala and America, who face each other in at Livestrong Sporting Park in Kansas City on Tuesday, lead Jamaica by three points.
Costa Rica won 1-0 in El Salvador to leapfrog their opponents 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 who, with a two-point lead over El Salvador, host winless Guyana in their final group game while their rivals travel to Mexico.
El Salvador had Eliseo Quintanilla and Alfredo Pacheco sent off in the closing moments.
Mexico, who were already sure to advance, maintained their 100% record as they 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 they could only draw 0-0 with Honduras.
They remain top on goal difference ahead of Canada, who 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 Tuesday. Canada go to Honduras.