If this was meant to a simple Sunday stroll that took Fulham closer to an immediate return to the Premier League, then for the second time this season Coventry had failed to read the script. The Sky Blues, who stormed to an impressive home win over Marco Silva’s side in October despite conceding an early own goal, upset the Championship’s runaway leaders in a committed display that married work ethic with invention and punished the hapless hosts for their complacency. The damage was done by the concession of two goals in four first half minutes, but the visitors – roared on by a raucous travelling following – defended diligently even after substitute Bobby Decordova-Reid halved Fulham’s arrears and fully deserved Callum O’Hare’s clinching third in stoppage time.

Fulham stood six points from the promised land at kick off, but they played as though promotion had been sealed long ago. Silva cut an exasperated figure on the sideline, waving his arms around furiously, almost in disbelief at the lethargy displayed by his side – who have been outstanding for most of this campaign. Just as in the Midlands in October, Fulham were found wanting when faced with an opposition willing to hassle and harry them and Coventry were ruthless in exploiting the gaps in the home rearguard. Signs that something was array appeared early when Tosin Adarabioyo’s horrid error allowed Gustavo Hamer a run at goal – and that set the tone for an edge-of-the-seat afternoon for home fans.

The Sky Blues weren’t content to just set back in a disciplined defensive shape like so many teams who have come to Craven Cottage this season. They poured numbers forward and had the better of the early exchanges. Dominic Hyam should have done better than send a free header over from an Ian Maatsen free-kick and, although Fabio Carvalho did draw a sharp save from Simon Moore at his near post, pressure on the away goal was a rare occurrence in the first twenty minutes. City’s sense of adventure was rewarded when Michael Rose flicked Hamer’s corner goalwards and Marek Rodak was left wrongfooted by a deflection off the recalled Antonee Robinson.

Carvalho, rumoured to have agreed a move to Liverpool in the summer, almost hit back immediately for Fulham curling a shot fractionally wide of the far post from 20 yards out but the leaders were rocked by conceding a second from Coventry’s next attack. There appeared to be little danger when Viktor Gyokeres collected possession twenty yards from goal but a clever touch and shimmer created the space for a speculative shot. Rodak looked well positioned to make a simple save but the Slovakian goalkeeper didn’t get enough behind it and the ball bounced through him and into the net. Silva has reportedly been searching for an upgrade in goal as he plots Fulham’s Premier League return – and this ghastly error might hasten that particular recruitment exercise.

Fulham were stirred from their stupor by the shock of going two goals down. The previously quiet Aleksandar Mitrovic forced Moore to smuggle his header behind before Neeskens Kebano saw an instinctive attempt to divert Neco Williams’ cross golabound come back off the crossbar. It was still Coventry who looked likelier to add to their commanding cushion with Ben Shea seeing two shots in quick succession blocked by Mitrovic and Williams. A disgrunted Silva sent on Decordova-Reid after the break, but the pattern of the first period remained unhindered.

Hamer stepped in to seize possession on the halfway line and ran half the length of the field before extending Rodak. Fulham did up the ante with Carvalho guiding a Harry Wilson cross wide with his header, Williams’ rasping drive bringing a good save out of Moore and Wilson narrowly off target with a trademark free-kick. Coventry, hanging on a bit, were desperate for a some relief that was almost provided when O’Hare did brilliantly to fashion a chance for Maatsen, but the on-loan Chelsea wing back saw his shot deflected over.

Fulham did set up something of a grandstand finish when Decordova-Reid drove in his first goal in five matches after a clever exchange of passes with Josh Onomah. Suddenly, Coventry looked rattled. They might have conceded an equaliser to substitute Rodrigo Muniz, but the Brazilian’s low shot was clawed away by Moore. Mitrovic and Muniz threatened to cause carnage in the box but the ball wouldn’t drop for a white shirt – and as the hosts pressed for a second, calamity struck at the other end. Tim Ream’s 250th Fulham appearance ended in disaster as Hamer seized on an underhit pass from the American and cut the ball back for the byline to supply the excellent O’Hare with the simplest of finishes from close range.

That inevitable promotion will just have to wait.

FULHAM (4-2-3-1): Rodak; Williams (Onomah 75), A. Robinson, Adarabioyo, Ream; Chalobah (Decordova-Reid 45), Reed; Wilson, Kebano (Muniz 74), Carvalho; Mitrovic. Subs (not used): Gazzaniga, Hector, Bryan, Seri.

BOOKED: Wilson.

GOAL: Decordova-Reid (82).

COVENTRY CITY (3-5-1-1): Moore; Rose, Hyam, Bidwell; Dabo, Allen, Sheaf, Hamer, Maatsen; O’Hare; Gyokeres. Subs (not used): Wilson, Tyler; Kane, Howley, Waghorn, Bapaga, Tavares.

BOOKED Dabo, Sheaf, Moore, Hamer.

GOALS: Rose (20), Gyokeres (24), O’Hare (90+2).

REFEREE: Keith Stroud (Hampshire).

ATTENDANCE: 19,041.