Arsenal's hopes of finishing 2023 top of the table were dashed as goals from Raul Jimenez and Bobby De Cordova-Reid secured a memorable 2-1 comeback win for Fulham - their first over the Gunners in 12 years.
Bukayo Saka gave Arsenal a perfect start with the opening goal on five minutes, but Jimenez levelled after 29 minutes and De Cordova-Reid's 59th-minute finish turned the match on its head to condemn Mikel Arteta's side to back-to-back defeats, leaving the Gunners in fourth on 40 points.
How the match unfolded
Fulham made three changes to the side beaten at AFC Bournemouth on Boxing Day. Jimenez was back after completing a three-match ban, while Willian returned from a hamstring issue to face his former club, and Timothy Castagne replaced Kenny Tete at right-back.
For Arsenal, Kai Havertz and Eddie Nketiah came in for Leandro Trossard and Gabriel Jesus respectively. Arteta was also forced to make a defensive change, with Jakub Kiwior starting at left-back in place of Oleksandr Zinchenko, who missed out due to a calf problem.
In Arsenal’s last match, a 2-0 at home defeat to West Ham United, they became the first Premier League team to have as many as 77 touches in the opposition box without scoring. It took less than five minutes - and four touches - to go 1-0 up at Craven Cottage.
Goalkeeper David Raya rolled the ball out to Gabriel Martinelli, who sped down the left flank, and when his shot was spilled by Bernd Leno, Saka was on hand to turn the ball in from six yards.
Fulham responded positively and a fizzing cross from Antonee Robinson on 14 minutes was met by Jimenez, but Raya did well to get down and save before Willian curled an effort wide.
The home side's spell of pressure paid off before the half-hour mark, Jimenez sweeping home a superb Tom Cairney delivery from the left for his fourth goal in four matches.
Arsenal could have added a second just before the break, but Martinelli poked his shot wide following a neat move involving Declan Rice, Saka and Martin Odegaard.
Arteta introduced Takehiro Tomiyasu for Kiwior at half-time, but it was Fulham who continued to attack with greater urgency, and they went 2-1 ahead through De Cordova-Reid on 59 minutes.
Willian swung over a second corner in quick succession, Arsenal couldn't clear their lines, and De Cordova-Reid hammered the loose ball into the roof of the net from close range.
Saka spurned a great chance to level just four minutes later but sliced his volley wide when unmarked at the back post.
Arteta made a double substitution, bringing on Trossard, who claimed a hat-trick of assists when Arsenal beat Fulham 3-0 last season, and Jesus as he tried to ignite his misfiring side.
Trossard curled in an inviting cross from the left that neither Jesus nor centre-back Gabriel could convert, and Joao Palhinha made a superb block from Saka as Arsenal pressed for the equaliser.
It was Marco Silva’s side who came closest to scoring again, however, as substitute Andreas Pereira smashed the woodwork with a free-kick.
Fulham's fourth win from their last five home matches leaves them in 13th with 24 points.
Fulham report | Arsenal report
Match officials
Referee: Josh Smith. Assistants: Eddie Smart, Nick Greenhalgh. Fourth official: Tim Robinson. VAR: Paul Tierney. Assistant VAR: Scott Ledger.
WHO'S GOING TO BE YOUR
MAN OF THE MATCH?
Vote at Full-time