His goal was a stunner from 40 yards to spoil the final match for Crew (5-9-2) goalkeeper Zack Steffen.
NYC (4-1-8) has four wins and five ties in the past nine games while Columbus is 1-8-1 over 10 matches.
The Crew's Gyasi Zardes scored on a penalty kick in the 28th minute, and then Heber tied it in the 57th, before Pedro Santos put Columbus ahead four minutes later.
Steffen signed with Manchester City in the offseason and will report to the English club after playing for the United States in the CONCACAF Gold Cup later this month. He was the MLS Goalkeeper of the Year as well as the U.S. Soccer Male Athlete of the Year in 2018.
The Crew played for the first time since learning Friday that playmaking midfielder Federico Higuain will miss the remainder of the season after sustaining a right knee injury at Colorado on May 25. He had a goal and five assists this season.
Santos took over his role and drew a penalty on defender Alexander Callens' foul, setting up Zardes for his sixth goal. Higuain had taken the Crew's other PK this season and did not convert.
Heber made it 1-1 with his fourth goal in the past seven games.
Ismael Tajouri-Shradi, who replaced injured defender Ben Sweat (ankle) in the 45th minute, sent the ball into the penalty area where Max Moralez was able to deflect the pass to Heber. Moralez has five assists in the past seven games.
Santos responded for a 2-1 lead with a left-footed shot from the right after a long run by David Accam following a turnover.
New York hosts Cincinnati on Thursday. The Crew's next league match is June 23 against Sporting Kansas City in Columbus.
Castellanos' stunner sours Steffen's sendoff
In Zack Steffen's final game with the Crew, Valentin Castellanos' stunning equalizer secured the 2-2 draw for NYCFC.