The game appeared to be headed for a goalless draw until Teal Bunbury gave New England a 1-0 in the 85th minute only to see Kacper Przybylko equalize three minutes later.
Story of the match
Philadelphia had a penalty shout in the sixth minute as Przybylko appeared to be bundled over by a New England defender, who never touched the ball, but the referee didn't give it.
Revolution goalkeeper Matt Turner was alert to the danger scooping up a loose ball after Sergio Santos had forced a turnover. He then stopped Jamiro Monteiro after some neat build-up play by the Union.
Andrew Buksa nearly opened the scoring, finding space on the edge of the box to turn and shoot, Philadelphia netminder Andre Blake making a fantastic save.
Turner was quick to react when Santos flicked one towards goal and the Union twice more had chances, first Anthony Fontana seeing his shot blocked and Jack Elliott watching his effort sail over.
Five minutes from time, it looked like New England grabbed a winner as Banbury slid while shooting, beating Blake at his near post only to see Monteiro cross for Przybylko, who nodded home through traffic in the 88th minute.
Man of the match: Carles Gil
The Revolution midfielder was at the heart of every New England attack and with a game-high six key passes (bringing his league-leading total to 21 for the season), he showed why he's one of the finest number 10's in MLS.