A late Gabriel goal enabled Arsenal to come from behind for the first time this season and maintain the only 100 per cent record in the Premier League.
The Brazil defender’s mistake had earlier gifted Fulham an unlikely lead and Aleksandar Mitrovic his goal for the club.
Inspirational Arsenal captain Martin Odegaard dragged his side back into the match with a well-deserved equaliser to set up the dramatic finish and a first defeat of the season for Fulham.
Arsenal had only one attempt on target in a first half they dominated to a remarkable extent without ever looking wholly convincing.
Fulham’s resilience naturally led to some frustrated glances between the Arsenal players and anxious groans from a home crowd that has been getting used to seeing their team turn chances into goals in recent weeks.
Relatively inexperienced Australian referee Jarred Gillett showed five yellow cards in a niggly match that hardly had a bad tackle.
The second half was following a similar pattern, with former Arsenal keeper Bernd Leno repeatedly standing resolute to prevent his ex-team-mates from taking a lead.
Then, in a 57th minute flash of incompetence from Arsenal defender Gabriel, Fulham were suddenly in front.
The Brazil international defender was caught in possession in his own area by Mitrovic who stole the ball and turned instantly on goal to beat a stranded Aaron Ramsdale with a low shot from 12 yards.
Arteta reacted by sending on substitute striker Eddie Nketiah in favour of left-back Kieran Tierney.
The Arsenal manager had been robbed of regular starters Oleks Zinchenko and Thomas Partey through injury and might have been hoping for more options from the bench.
But the switch injected more attacking life into his side and they were level just eight minutes after going behind.
Odegaard collected a Bukayo Saka pass to the right of the Fulham area and cut along the edge of the penalty box before beating Leno with a left footed shot that flew in with the aid of a deflection.
Fulham still had belief, however, and it took a great save from Ramsdale to keep out a Mitrovic header and a brilliant Ben White block to stop Bobby Decordova-Reid from crashing in the rebound.
Arsenal then peppered the Fulham goal with a series of attacks that should have led to them taking the lead. Nketiah squandered two brilliant chances and Odegaard was inches away from his and Arsenal’s second.
Leno was inspired under pressure and Fulham celebrated every block, save and clearance like a goal.
Their luck ran out in the 85th minute when Leno failed to make connection with a near post corner and Gabriel knocked the loose ball over from close range.
The Fulham fans, who have never seen their side win here, collapsed to a stunned silence while the celebration police will want to have a word with how much the Arsenal fans made a noise.
There was still time for Ramsdale to make another crucial save from substitute Nathaniel Chalobah as Gillett added on five tension-filled extra minutes.
Arsenal: Ramsdale 7, Tierney 6 (Nketiah 61), White 7, Gabriel 6, Saka 6, Odegaard 8 (Holding 90), Jesus 6 (Tomiyasu 89), Martinelli 6, Saliba 7, Elneny 6, Xhaka 6.
Subs: Turner, Smith Rowe, Soares, Vieira, Lokonga, Marquinhos.
Fulham: Leno 7, Tete 6 (Mbabu 79), Adarabioyo 5, Reed 6, Kebano 5 (Cairney 69), Mitrovic 8, Ream 7, Decordova-Reid 6, Pereira 6 (Diop 79), Palhinha 6 (Chalobah), Robinson 6.
Subs: Rodak, Duffy, Francois, Harris, Stansfield.