Sol Campbell proved to be an unlikely match-winner to earn Arsenal a hard-fought win at Portsmouth.
The England defender lashed home a 25-yard shot for his first goal in 16 months to take Arsenal back into second spot, five points behind Chelsea.
But before Campbell scored the best two chances of the game fell to Pompey striker Ricardo Fuller.
In the first half he blasted wide when clear, and his control let him down in the second half when well placed.
Portsmouth got plenty of bodies behind the ball to deny Arsenal space in the early stages.
But their marking was slack at a corner and Patrick Vieira should have done better when the ball fell to him 16 yards out.
A mistake by Arjan de Zeeuw let Thierry Henry in behind the Pompey defence on 17 minutes but as he bore down on goal Linvoy Primus got in a saving tackle.
With just Fuller as an out-and-out striker, Portsmouth's shape made life difficult for Arsenal.
But a delightful touch by Robin van Persie gave Henry a sight of goal, although the angle was too tight for his shot to trouble Jamie Ashdown.
Ashdown caused hearts to flutter on 28 minutes when he missed his punch at a corner and Kolo Toure headed just wide and, as Arsenal began to press, Van Persie blasted over a good opportunity after Henry had set him up.
Steve Stone's tackle on Patrick Vieira sums up Popey's effort
Henry took a quick return pass from Vieira but Ashdown was out quickly to block, and there were some anxious seconds for Pompey as the ball ran loose before Matthew Taylor cleared.
After playing second fiddle, Portsmouth should have taken the lead on 34 minutes.
Referee Howard Webb played a good advantage to allow Steve Stone to send Gary O'Neil away but, having shrugged off Toure, the Pompey midfielder planted his shot wide from 10 yards.
As half-time approached, Henry teased a shot through a ruck of players and inches wide.
At the other end, Fuller broke clear but failed to hit the target as Toure closed him down.
Fuller was given the best chance of the match so far on 48 minutes when Patrik Berger's break and slipped pass played him clear.
But a poor first touch lost him the opportunity and even when he checked back and went down under Vieira's challenge, referee Webb was not interested.
Fuller paid the price when he gave way on 55 minutes to Aiyegbeni Yakubu, who returned after six weeks out with a knee injury.
But it needed alert reflexes and safe handling from Ashdown to cling on to Van Persie's shot as Henry sniffed for scraps.
Robert Pires and Matthew Taylor tussle for possession
Portsmouth were growing in confidence and keeper Manuel Almunia had to stand his ground to beat away a powerful shot from Berger.
Arsenal were struggling to find their rhythm but took the lead through the unlikely source of Campbell.
The England defender needed little invitation as Pompey backed off to stride forward and lash a ferocious shot past Ashdown.
Arsenal might have stretched their lead two minutes later when Mathieu Flamini escaped his marker to flash a header wide from Henry's free-kick.
Almunia went full length to grab Berger's long-range shot, while Ashdown palmed away substitute Dennis Bergkamp's shot.
Portsmouth: Ashdown, Griffin, De Zeeuw, Primus, Taylor, Stone, O'Neil, Faye (Berkovic 83), Berger, LuaLua, Fuller (Yakubu 55).
Subs not used: Hislop, Quashie, Cisse.
Arsenal: Almunia, Lauren, Toure, Campbell, Cole, Pires, Flamini, Vieira, Clichy, Van Persie (Bergkamp 68), Henry.
Subs not used: Lehmann, Fabregas, Senderos, Hoyte.
Goals: Campbell 75.
Ref: H Webb (S Yorkshire).