The Revolution (7-15-8) have just one win in 13 matches (1-8-4) since beating New York 2-0 on July 8.
Barnes' tying goal came shortly after Loel Lindpere put the Red Bulls (14-8-8) ahead in the first minute of stoppage time.
Revolution backup goalkeeper Bobby Shuttleworth earned the start in place of Matt Reis, and stopped three shots. Red Bulls goalkeeper Bill Guadette made four saves.
New York defender Conor Lade was ejected after he picked up his second yellow card in the 74th minute, and left the Red Bulls short-handed for the final 16 minutes.
Both teams were forced to make early substitutions. New York's Rafa Marquez left the game with hamstring tightness while New England's Flo Lechner suffered a knee injury. Both came off in the 35th minute.
In the 37th, the Red Bulls found their first chance at the scoreboard when Cahill grabbed a pass from Joel Lindpere and pounded a shot that whistled wide of the far post.
Nguyen nearly squeezed a free kick through in the 82nd minute, but Guadette fell to his left to smother the opportunity.