After watching this absorbing encounter where the Whites pushed Manchester City all the way and spurned enough chances to win several games, a pessimistic Fulham fan might feel they will never see Fulham win at the Etihad Stadium ever again. Marco Silva’s side differed from recent visitors to east Manchester by attacking Pep Guardiola’s champions and, although they failed to snap an eighteen game winless streak in this fixture, it is easy to assess how far they have come by the fact that Spaniard sacrificed Phil Foden for John Stones in the closing stages to ensure his side secured a first league win in three matches.

The Cottagers ultimately paid the penalty for failing to finish a host of presentable chances as City’s usually impregnable defence continues to look alarmingly vulnerable. The chief culprit was a previous City tormentor in chief. Adama Traore blazed badly over the bar from close range after former Manchester United midfielder Andreas Pereira had poached an early opener and also couldn’t convert two one-on-ones but the Spaniard’s blistering pace was the main reason why Silva’s side had most of the home fans shifting uncomfortably in their seats until the 96th minute of an end-to-end epic.

Silva’s one change – handing Sander Berge a first league start in place of Emile Smith Rowe – hinted at an afternoon of application rather than artistry, but the visitors were open from the outset. The early signs weren’t particularly promising as the home side roared out of the traps and could have been two goals to the good within the first ten minutes. Ilkay Gundogan drove wide from right in front of goal after Bernd Leno had played his defence into trouble before Erling Haaland got the better of Joachim Andersen but dragged his shot wide of the far post.

It looked like being a long afternoon but Fulham suddenly flickered into life. Alex Iwobi saw an angled drive blocked at source after he was picked out by a peach of a pass from Pereira. Raul Jimenez couldn’t make the most of a free header from the ensuing corner, but the Mexican’s raking pass sent Traore trundling clear of the City defence only for Ederson to block the former Wolves winger’s shot with his feet.

The visitors then stunned the Etihad with an opening goal of exquisite quality. Jimenez strode onto a clever pass from Alex Iwobi but his options appeared limited with his back to goal. The Mexican produced a brilliant backheel to outfox the City defence and allow Pereira to poke home from inside the six yard box. A one goal lead felt fantastic, but it should have been even better two minutes later when a poor pass from Jack Grealish saw Jimenez pick out Pereira and the Brazilian run almost eighty yards to pick out Traore, who staggeringly spooned over from ten yards. Silva couldn’t comprehend the miss in the technical area – and there was similar stunned silence amongst the away supporters.

City made Traore pay relatively quickly. Fulham could only half clear a corner and former Chelsea midfielder Mateo Kovacic cracked in the equaliser – with Bernd Leno’s task made impossible by a couple of cruel deflections, the last coming off an unfortunate Andersen. Fulham did well to reach half time still level as incessant blue waves of pressure came and went, but they were breached within two minutes of the restart. The away side were far too extravagant with the ball deep in their own territory, with a clever chip from Foden locating Bernado Silva in plenty of space. The Portugese’s chested pass offered the room for Kovacic to take aim again from twelve yards and his shot beat Leno’s hopeful dive into the far corner.

Fulham continued to play although City enjoyed far more possession as well as the lead. The visitors still fashioned great chances on the break with Traore exchanging passes with Jimenez and surging beyond the recently introduced Kyle Walker, on his 400th Premier League appearance, but being denied again by Edersen when he had the option of either dinking a deft finish over the advancing goalkeeper or rounding him. Only a brilliant block from Josep Gvardiol prevented Jimenez from scoring a fourth goal in as many games.

A nervous Guardiola sent on Stones for Foden but it was another substitute in the shape of Belgian speedster Jeremy Doku who delivered the crucial third goal. Kovacic had a key role here too, progressing well in the final third before picking out the winger on the left. Doku darted inside Timothy Castagne far too easily before unleashing an unstoppable shot high past Leno into the top corner of the net.

Fulham weren’t finished. Rodrigo Muniz reduced the arrears in the 88th minute with an instinctive finish after he spun impressively in the area to score his first goal April from a Reiss Nelson cross but City saw out five additional minutes to claim an unconvincing victory.

MANCHESTER CITY (4-2-3-1): Ederson; Lewis, Gvardiol, Akanji (Walker 62), Dias; Kovacic, Gundogan (Nunes 89); Silva, Grealish (Doku 62), Foden (Stones 78); Haaland. Subs (not used): Carson, Ortega, McAtee, Savinho.

BOOKED: Ederson, Silva.

GOALS: Kovacic (32, 47), Doku (82).

FULHAM (4-2-3-1): Leno; Tete (Castagne 77), A. Robinson, Andersen, Bassey; Lukic, Berge (Cairney 65); Iwobi (Nelson 77), Traore, Pereira (Smith Rowe 65); Jimenez (Muniz 77). Subs (not used): Benda, Diop, Reed, Wilson.

BOOKED: Bassey.

GOALS: Pereira (26), Muniz (88).

REFEREE: Peter Bankes (Merseyside).