A late goal by Gabriel ended Fulham’s unbeaten start to life back in the Premier League.
The defender’s mistake led to the Whites going ahead early in the second half through Aleksandar Mitrovic’s 100th goal for the club.
The striker robbed Gabriel and slotted home – but Arsenal hit back through Martin Odegaard’s equaliser eight minutes later.
Odegaard collected Bukayo Saka’s pass and created space for himself with a clever stepover before firing past former Gunners keeper Bernd Leno.
And Gabriel won it for the home side by scoring from close range after Leno failed to claim a corner.
Leno had produced a number of saves, including a fine stop to deny Eddie Nketiah shortly before the winner.
At the other end, Aaron Ramsdale produced a brilliant save to prevent Nathaniel Chalobah equalising.