None of the pundits gave Fulham a prayer of taking anything away from Arsenal this afternoon. The Whites, weakened by the loss of Aleksandar Mitrovic, were expected to fall meekly at the feet of Mikel Arteta’s Arsenal in the way they had woefully capitulated to Brentford last weekend. But nobody told João Palhinha. The Portuguese powerhouse is better known for his tackling, having topped the Premier League during his first nine months in England, but he popped up an 87th minute equaliser as Marco Silva’s men made light of Calvin Bassey’s red card to steal the headlines.

It was meant to be Bukayo Saka’s big day. The England winger surpassed Paul Merson’s record of top-flight consecutive games for Arsenal, but within a minute he had presented Andreas Pereira with a goalscoring opportunity. Saka could have been forgiven for thinking there would have been a right back between himself and Aaron Ramsdale but Arteta’s baffling decision to field Thomas Partey there meant there was space for the Brazilian to seize upon an uncharacteristic error. Aaron Ramsdale was so far off his line he might have been mimicking David Raya at Wembley – and he certainly matched the dive – as Pereira dinked a delightful finish between the England number one and the near post.

His impression of Joe Bryan stunned Arsenal, who were horribly unbalanced by Arteta’s preference for Partey and not Ben White at right back. Fulham might have made it two on several occasions as they broke at will. Harry Wilson drove just wide from 25 yards, Raúl Jiménez’s remarkable reverse rabona bicycle kick missed by milometres and the Mexican forward wasn’t far away with a more conventional curler. Silva’s side weren’t rampant – but they posed real questions for the home defence on an afternoon when it felt like Arteta was trying to be a little too cute.

He also started with Leandro Trossard in the number nine role rather than Eddie Nketiah. Kai Havertz floated from an orthodox central midfield position, which seemed to make Declan Rice unsure of whether to track Fulham’s midfield runners or burst forward himself. The £105m man did neither and Palhinha’s poise saw Silva’s side win that battle. Jimenez did brilliantly to block a goalbound Martinelli header at a corner and Saka spurned the simplest chance of the afternoon – heading into the ground and over from six yards – before Gabriel Martinelli brought a brilliant save from Bernd Leno at his near post.

Martin Ødegaard did think he’d equalised five minutes before half time with a precise finish in the bottom corner but the celebrations were cut short by an offside flag raised against Havertz in the build up. Fulham went in a goal up, but Arteta rectrified his attacking mistake by sending on Nketiah for the timid Trossard at the start of the second half. Saka, still desperate to atone for his earlier mistake, tested Leno’s reflexes but Fulham remained a threat with stand-in skipper Bobby Decordova-Reid inches away from curling in number two after Sasa Lukic had seized possession and fed Pereira.

Ødegaard found more space at the apex of Arsenal’s midfield three, but spooned a shot over after cutting in from the right, before the Arsenal boss brought on Olek Zinchenko to end the Partey experiment as well as introducing Fabio Vieira. The former Porto man made an immediate impact, inducing a wild challenge from Kenny Tete to win a penalty, from which Saka – after a long wait – sent Leno the wrong way. Within two minutes, the game had turned on its head. Vieira crossed for Nketiah to steer Arsenal in front, but Fulham were incensed that the game was allowed to continue with Calvin Bassey lying prone on the byline. The normally placid Marek Rodak, as well as Silva, were booked for their protestations before referee Paul Tierney underlined the absurdity of the new Premier League directives by sending the centre half off the field as Fulham kicked off and not allowing him to return for 75 seconds.

Bassey’s afternoon ended seven minutes from time when he was shown a second yellow card for blatantly blocking Nketiah as the striker sought to break beyond the halfway line. Fulham might easily have folded, but Silva’s side have serious spirit in their ranks. Palhinha produced a first-time finish from Harrison Reed’s low corner to spark wild scenes of celebration from the Fulham fans. They might have won it when substitute Adama Traore sped away from White only for Ramsdale to redeem himself with a fine reaction save.

Tierney played well beyond the additional nine minutes, meaning the returning Leno was forced to make a magnificent stop from Vieira and the visitors survived a couple of late corners before claiming only their seventh league draw in thirty-two visits to the red half of north London.

ARSENAL (4-3-3): Ramdale; Partey (Zinchenko 56), Kiwior, White, Saliba; Rice (Gabriel Jesus 90+1), Ødegaard (Jorginho 84), Havertz (F. Vieira 56); Saka, Martinelli, Trossard (Nketiah 45). Subs (not used): Raya, Gabriel, Nelson, Smith-Rowe.

GOALS: Saka (pen 70), Nketiah (72).

FULHAM (4-2-3-1): Leno; Tete, A. Robinson, Diop, Bassey; Palhinha, Lukic (Reed 70); Wilson (Traore 63), Decordova-Reid (Adarabioyo 89), Pereira (Cairney 63); Jiménez. Subs (not used): Rodak, Mbabu, Harris, Muniz, Vinicius.

BOOKED: Jiménez, Bassey, Lukic, Tete.

SENT OFF: Bassey.

GOALS: Pereira (1), Palhinha (87).

REFEREE: Paul Tierney (Greater Manchester).

ATTENDANCE: 59,961.