Fredrik Ljungberg scored twice as Arsenal survived a tough test against Charlton at The Valley to stay in touch with Premiership leaders Chelsea.
Charlton's Dennis Rommedahl and Jon Fortune missed chances before Patrick Vieira set up Ljungberg to fire home.
Talal El Karkouri equalised for the home side on the stroke of half-time with a swerving long-range free-kick.
But Ljungberg finished off a fine move just after the break and Robin van Persie sealed a fourth straight win.
Charlton went into the game on a five-game unbeaten run, and could have been ahead almost from the kick-off.
Rommedahl took advantage of some early rustiness in the Arsenal defence to engineer a shooting chance, but keeper Manuel Almunia dived to his left to save.
Thierry Henry had a shot on the turn saved by Dean Kiely from Arsenal's first attack, but Charlton continued to dominate.
A stretching Danny Murphy narrowly failed to latch on to a lofted through ball from Luke Young.
Then Fortune might have done better when a fizzing shot from Rommedahl gave him the chance to steer the ball home from six yards out.
Shaun Bartlett also shot wastefully over.
Under pressure after Chelsea's earlier victory at Liverpool, Arsenal finally kicked into gear 10 minutes before the break.
Some slick passing saw Van Persie send Vieira clear on the left, and Ljungberg collected his pass and turned sharply to fire home.
Charlton's response was emphatic.
Arsenal manager Arsene Wenger was far from happy when a free-kick was awarded for an apparent foul by Vieira on Matt Holland in first-half injury time.
But El Karkouri's finish was of the highest quality as he blasted the ball past the despairing dive of Almunia from almost 30 yards out.
Having looked laboured throughout the first half, Arsenal produced another flash of brilliance to take the lead three minutes after the break.
Van Persie was again the instigator as he threaded the ball through to Cesc Fabregas on the right.
An exquisite backheel found Ljungberg in full flight and the Swede smashed a rising shot past Kiely.
Charlton were then indebted to Bartlett as the striker headed Henry's free-kick off the line.
But a third goal on 67 minutes eased Arsenal's nerves.
Charlton defence failed to deal with Almunia's long clearance, and Van Persie shot left-footed into the far corner.
The only further worry for Wenger was the departure of Sol Campbell with an injury after the centre-back went down awkwardly as he attacked a corner.
Charlton: Kiely, Young, El Karkouri, Fortune, Hreidarsson,
Rommedahl, Murphy, Kishishev (Euell 64), Holland,
Thomas (Konchesky 64), Bartlett (Johansson 75).
Subs Not Used: Andersen, Hughes.
Goals: El Karkouri 45.
Arsenal: Almunia, Hoyte, Toure, Campbell (Senderos 82), Cole,
Ljungberg (Pennant 85), Fabregas, Vieira, Clichy, Henry,
Van Persie (Pires 71).
Subs Not Used: Lehmann, Larsson.
Goals: Ljungberg 35, 48, Van Persie 67.
Ref: M Halsey (Lancashire).