A day after second-placed Chelsea lost 2-0 at Liverpool, England striker Wayne Rooney headed United into a 53rd-minute lead that could potentially have decided the title race.
But Van Persie came off the substitutes' bench to score an 83rd-minute equaliser and captain Henry headed a fine stoppage-time winner.
Though victory completed a league double over United after Arsenal's 1-0 win at Old Trafford in September, it was marred by Van Persie suffering a broken bone in his foot that almost certainly means a long spell on the sidelines.
United, chasing their first league title since 2003, have 57 points after 24 games. Chelsea, champions for the last two seasons, have 51 points, Liverpool 46 and Arsenal 45.
Arsenal manager Arsene Wenger said his team's victory had thrown open the title race and that determination and team spirit had turned the game around.
"It was a test of character, resilience and togetherness," he told a news conference.
"I believe we went until the end, right up to the last second, because we really wanted to win. In the last 20 minutes, it was all us."
United manager Alex Ferguson was at a loss to explain how his side had lost a game they were leading after conceding two goals following high crosses from the right flank.
"They kept hitting long balls up to Henry and (Emmanuel) Adebayor and we were coping with that great....We've lost two goals from positions I didn't think we would lose goals in. But that's football," he told Sky Sports.
FOOT INJURY
The only cloud on the horizon for Arsenal was a broken fifth metatarsal for Van Persie, an injury which Wenger said the striker had sustained in his goal celebration.
The break, likely to sideline him for at least six weeks, will be a major setback for Arsenal as the Dutchman is their top league scorer with 11 goals.
Arsenal, who flirted with their first defeat at their new Emirates Stadium, will be grateful though for a win secured by some relentless second-half pressure.
United seized the early initiative, with Rooney, Cristiano Ronaldo and Henrik Larsson stringing passes through a hesitant Arsenal defence.
Years of rivalry, along with the current title stakes, meant there were plenty of crunching tackles. Space was at a premium and clearcut chances almost non-existent.
United nearly snatched the lead on the stroke of halftime, though, when Jens Lehmann tipped a Rooney shot onto the bar and over and then palmed away a Larsson header from the corner.
Rooney was not to be denied eight minutes after the re-start, though, when United defender Patrice Evra made a good run down the left, his cross was touched on by Arsenal's Kolo Toure and the England striker dived to head home at the far post. It was his first goal in 13 games since early December.
ARSENAL PRESSURE
Arsenal pressed for an equaliser but struggled to create real chances against a well-drilled United defence, while Ferguson's side also threatened to score a second on the break.
It looked over for Arsenal until two crosses changed everything. Van Persie rifled home the first from Tomas Rosicky at the far post and Henry hit the net with a bullet header from Emmanuel Eboue's ball with the second.
Earlier, Everton inflicted Wigan Athletic's seventh league defeat in a row with a 2-0 victory at the JJB Stadium. Spanish playmaker Mikel Arteta scored both.
Everton's England striker Andy Johnson was carried off on a stretcher with an ankle injury.