It just had to be a penalty that ultimately ended Fulham’s promotion dream, didn’t it? This one, awarded contentiously by Martin Atkinson after both Yann Kermogant and Tomas Kalas appeared to handle a bouncing ball in the box, was converted by Kermogant to send Reading to Wembley and extend Fulham’s wretched winless play-off record. After the raucous and somewhat riotous Royals celebrations afterwards, you could spot red shirts sinking to their knees disconsolate as Slavisa Jokanovic’s side ran out of gas approaching the penultimate hurdle in an extraordinary season.

Fulham certainly gave it everything, especially in a frenetic finale as they even pushed Marcus Bettinelli forward in search of goal that could have brought extra time, but you felt that the exhaustions of a punishing league and Cup campaign had caught up with the visitors – this might have been one game too many. Even though Fulham’s football wasn’t as fluent as it could have been – and you have to credit Jaap Stam for ensuring his side shackled Tom Cairney – they still carved out a host of excellent chances, with Ali Al-Habsi making a string of world class saves both before and after Kermogant banished his own play-off penalty demons in the second half.

The Omani goalkeeper had already smuggled Ryan Fredericks’ strike onto the post after a typical bustling run onto the post before he made a brilliant stop to claw away Cairney’s curling free-kick and then hauled himself up to thwart Sone Aluko from the rebound. In the second half, Al-Habsi smothered a shot from ex-Royal Lucas Piazon, made an outstanding reaction drive to tip Kevin McDonald’s placed drive over the crossbar after a brilliant burst from Aluko and then threw himself at the feet of Chris Martin when the substitute seemed well placed to equalise.

In the final minute of stoppage time, with Bettinelli a permanent fixture in the Reading box, Stefan Johansen swung over a cross from the left and Martin glanced a free header wide of the far post – summing up both a frustrating evening and an ultimately unfulfilling loan spell for the Scotland international. Fulham had summoned plenty of application and endeavour but were punished for the lack of potency in the final third that has been the story of their season.

Reading were much more ambitious than at Craven Cottage on Saturday, roared on by a fired-up Madjeski crowd and they went close to taking the lead in the thirteenth minute when Kermogant shook off the attentions of both Kalas and the excellent Tim Ream to swivel and shoot at goal. It looked like the opening goal, only for Bettinelli to brilliantly palm it around his post.

The hosts started the second half in rousing fashion. Kermogant’s fine cross located Lewis Grabban in space, but the Bournemouth loanee’s attempted flick was easily gathered by Bettinelli. The tie’s crucial moment arrived just a minute later. Kermogant and Kalas chased a floated ball forward by van der Berg and, after the former Leicester striker had pushed the centre back, Atkinson adjudged the latter guilty of handball. TV replays suggested the French forward had also used his hand to try and gain possession, but that was all academic once Kermogant squeezed his spot-kick under the body of a disappointed Bettinelli, who had guessed right.

The Fulham goalkeeper recovered quickly as he palmed away a Grabban drive at goal to prevent Reading from doubling their lead just moments later and Bettinelli was in the right place at the right time to gather John Swift’s stabbed shot when the ex-Chelsea midfielder had almost the whole goal to aim after being perfectly picked out by Chris Gunter. For a moment it looked as if Fulham could be swept away by a Royal tide, but they came again – with wave after wave of attacks towards the end, but Jokanovic’s side couldn’t produce the piece of magic that would have been necessary to beat the inspired Al-Habsi.

READING (5-3-2): Al-Habsi; Gunter, Blackett (McCleary 66), Ilori, Moore, van der Berg; Evans, D. Williams, Swift (Kelly 75); Kermogant (Mendes 89), Grabban. Subs (not used): Jaakola, Gravenberch, Beerens, Popa.

BOOKED: Kermogant, Moore.

GOAL: Kermogant (pen 49).

FULHAM (4-1-2-3): Bettinelli; Fredericks, Malone (Martin 73), Kalas, Ream; McDonald; Cairney, Johansen; Aluko, Ayite (Sessegnon 58), Kebano (Piazon 58). Subs (not used): Button, Odoi, Parker, Cyriac.

BOOKED: McDonald, Johansen, Malone.

REFEREE: Martin Atkinson (West Yorkshire).

ATTENDANCE: 22,044.