Arsenal came from two goals down to earn a battling point against Portsmouth at the Emirates Stadium.
Captain Gilberto Silva scored Arsenal's equaliser after 60 minutes
Noe Pamarot headed Pompey in front seconds before half-time and Matt Taylor doubled the lead immediately after the break with a looping volley.
Frustrated Arsenal boss Arsene Wenger was sent from the dug-out, but his mood improved when sub Emmanuel Adebayor pulled one back after 58 minutes.
Arsenal's comeback was complete when Gilberto Silva slid home on the hour.
Arsenal gave Jeremie Aliadiere his first league start of the season, with Adebayor and Theo Walcott dropping to the bench from the midweek win at Wigan.
It did not appear to dilute their threat in the early stages as Portsmouth relied on keeper David James and good fortune to stay on level terms.
James blocked Robin van Persie's point-blank header from Emmanuel Eboue's cross as Arsenal pressed for a swift advantage.
The Gunners suffered a blow after five minutes when Freddie Ljungberg appeared to injure a hamstring in a tackle and limped off, to be replaced by Walcott.
Walcott was quickly into the action, beating Pamarot for pace before delivering a cross that was cut out by James.
But Portsmouth grew in confidence and stunned Arsenal by taking the lead seconds before the interval.
Taylor's cross was headed against the post by David Thompson, but Pamarot was on hand to bundle home the rebound.
And they repeated the dose immediately after half-time to double their advantage, Taylor looping a left-foot finish beyond Jens Lehmann to add to his catalogue of outstanding goals.
It added up to more frustration for Arsenal boss Arsene Wenger, who was ordered to stay out of the dug-out for the second half after heated protests as he went down the tunnel at half-time.
Arsenal's response was devastating, after Wenger sent on Adebayor for Aliadiere after 54 minutes.
He had only been on for four minutes when he raced on to Walcott's cross to slam a powerful drive past James.
And he was involved two minutes later when his cross caused confusion in the Portsmouth penalty area, paving the way for Walcott to set up Gilberto for an angled finish.
Arsenal were rampant, and Van Persie should have put them ahead after a weaving run, but shot into the side-netting.
Gilberto then shot inches wide as Arsenal took complete command after drawing level.
Arsenal manager Arsene Wenger:
"After we went two goals down we had to show we are a special team and show special character and determination. We did and I can't praise my players enough.
"We showed how good we are, but I thought we should have won the game in the end because we created so many chances.
"I was sent from the dug-out because I spoke to the officials at half-time and suggested it was not a free-kick that led to their first goal.
"I just couldn't see how that was a free-kick and to be punished in that way by conceding a goal was hard to take."
Portsmouth manager Harry Redknapp:
"At two up I thought we were sitting comfortably, but in the end we will settle for a point.
"It is a fantastic result for us and the Portsmouth players have been fantastic this season. Arsenal put pressure on us after they got back in the game, but we hung in there and I'm delighted.
"To be in the top four alongside teams like Chelsea, Manchester United, Liverpool and Arsenal is incredible."
Arsenal: Lehmann, Eboue (Flamini 78), Toure, Djourou, Clichy, Ljungberg (Walcott 6), Silva, Fabregas, Hleb, Aliadiere (Adebayor 55), Van Persie.
Subs Not Used: Almunia, Senderos.
Goals: Adebayor 58, Silva 60.
Portsmouth: James, Johnson, Primus, Campbell, Pamarot, O'Neil, Thompson (Kranjcar 71), Davis, Pedro Mendes, Taylor, Kanu (Hughes 85).
Subs Not Used: Ashdown, O'Brien, Douala.
Booked: Johnson, O'Neil.
Goals: Pamarot 45, Taylor 47.
Att: 60,037 Ref: S Bennett (Kent).