Robin van Persie scored two - including a contender for goal of the season - as Arsenal earned their third league win in a row by beating Charlton.
Van Persie's second goal was a sublime left-foot volley
Charlton took the lead after 21 minutes as Darren Bent tapped in from Jimmy Floyd Hasselbaink's low cross.
But Van Persie levelled with a low drive before half-time after good work from Alexander Hleb inside the box.
And the Dutchman hit a breathtaking left-foot volley just after the break from Emmanuel Eboue's right-wing cross.
It was a goal worthy of winning any match, although Charlton will feel aggrieved that they did not win a penalty after 71 minutes when Kevin Lisbie's overhead kick struck William Gallas' arm inside the box.
A scrappy opening offered little indication of the drama to come. But Charlton took the lead on 21 minutes with their first shot on target.
Bent had the easiest of tasks, tapping in Hasselbaink's ball across the six-yard box after the Dutchman was sent clear by Hermann Hreidarsson's long ball.
The goal seemed to galvanise Arsenal and they began to exert pressure on the Charlton defence.
The equaliser materialised just after the half-hour mark.
Van Persie's low finish was smart, but the Dutchman owed much to Hleb's excellent close control, as the midfielder held off three Charlton defenders before crossing.
Despite the two goals, there was a lack of finesse in the opening period.
But Van Persie single-handedly made up for it by firing in one of the strikes of the season four minutes after the restart.
Eboue found space down the right and sent in a high cross which found the leaping Van Persie, who showed brilliant technique to send an unstoppable volley flashing past Scott Carson.
The match opened up and Carson saved from point-blank range from Henry after a dreadful mix-up in the Charlton defence involving the goalkeeper and Jonathan Fortune.
Moments later, Jens Lehmann showed extraordinary reactions to save at the near post from Andy Reid's low drive.
Van Persie then missed a chance to complete his hat-trick as he failed to connect with Henry's dangerous ball across the box.
Charlton were incensed with 20 minutes to go as Lisbie's overhead kick struck Gallas' outstretched arm, but referee Mark Clattenburg was unmoved.
The incident seemed to unsettle the Gunners, and Hasselbaink should have done better when he headed wide while unmarked with 10 minutes to go.
Cesc Fabregas then missed the chance to make the game safe, the Arsenal youngster firing at Carson as he broke clear in the box.
Substitute Tomas Rosicky saw a shot saved from Carson in a frantic finale.
Charlton boss Iain Dowie on Mark Clattenburg's decision not to give a penalty to his side:
"It's one of those decisions - it's a mistake and we all make mistakes
"As long as we're open enough to admit we got it wrong, I have got no problem. I'll see if I get that phone call."
Arsene Wenger on Robin van Persie's second goal:
"It was the goal of a lifetime. He's played for a long time and I'm not sure he's scored one like that.
"I feel the cross was fantastic from Emmanuel Eboue. Robin took the ball at full pace and full power and his technique and his movement was perfect.
"The ball looked like it would go over the bar so when it came down and in the corner it was unbelievable."
Charlton: Carson, Young, Fortune, El Karkouri, Hreidarsson, Lisbie, Faye (Kishishev 45), Hughes, Reid (Ambrose 78), Darren Bent, Hasselbaink.
Subs Not Used: Myhre, Holland, Ashton.
Booked: Hreidarsson, Lisbie, Hasselbaink, Kishishev.
Goals: Darren Bent 21.
Arsenal: Lehmann, Eboue, Toure, Gallas, Hoyte, Hleb (Djourou 90), Fabregas, Silva, Ljungberg, Henry, Van Persie (Rosicky 77).
Subs Not Used: Almunia, Julio Baptista, Adebayor.
Booked: Van Persie, Fabregas, Toure, Hoyte.
Goals: Van Persie 32, 49.
Ref: M Clattenburg (Co Durham).