MARC McNulty missed a last-gasp penalty as Reading FC fell to defeat at Elland Road.

Royals won an 89th minute spot-kick when Barry Douglas brought down Josh Sims in front of referee Mike Dean.

But substitute McNulty – perhaps an odd choice to take it – saw his tame effort saved by Bailey Peacock-Farrell as Leeds clinched a win that moved them above Middlesbrough into second place.

It was a bitter blow for Reading who put everything into the clash without any reward as their three-match unbeaten run came to an end.

Paul Clement will point to an encouraging first start from Danny Loader, bags of energy and desire from his players and several missed chances as more grounds for optimism.

And rarely have Leeds United been given such a thorough test at home so far this season.

But they are crumbs of comfort for Clement whose side cannot escape the shackles of a relegation scrap.

Reading remain 20th in the table and out of the bottom three on goal difference alone.

A hard, five-day slog up north has delivered one point from two games after the goalless draw at Wigan on Saturday.

And the manner of tonight’s defeat will hurt that much more given the cruel ending after Stuart Dallas had given Marcelo Bielsa’s Leeds the lead on 60 minutes.

For the second fixture in a row, Clement made four changes from the side that drew 0-0 at Wigan.

Andy Yiadom, Leandro Bacuna and Tiago Ilori all returned to the starting line-up along with Loader for his full league debut.

That meant John O’Shea, Sone Aluko, Garath McCleary and Tyler Blackett dropped to the bench as Clement utilised his squad.

It took less than two minutes for Leeds to go close, Barry Douglas heading narrowly wide from a Pablo Hernandez cross after poor defending from the visitors.

But Clement’s men regrouped, dug in and began to pose questions of the home side.

Bacuna had returning Leeds keeper Peacock-Farrell back tracking with a cheeky free-kick from miles out which was eventually tipped over.

Then Yakou Meite headed Bacuna’s corner over the crossbar, though Peacock-Farrell had it covered.

The hosts hit back as a crucial block from Ilori stopped Kemar Roofe’s stinging volley from bursting the net.

But a slick move on 25 minutes saw Reading threaten again when Loader’s clever ball over the top sent Yiadom clear.

The full-back’s cross deflected to Swift whose fizzing first-time effort hit the unfortunate Meite in front of the Leeds goal.

Moments later Gunter’s first-time effort was blocked on the edge of the box as Reading kept up the pressure on the home side’s defence.

Roofe tried an audacious shot from the corner of the area soon after, but Jaakkola had it covered.

There were bundles of pace and energy in Reading’s play with Andy Rinomhota often at the heart of their attacks.

Yet they almost conceded three minutes before the break when Ezgjan Alioski headed into the side netting from a vicious Douglas delivery.

Sadly, the Leeds forward made a fool of himself moments later with an embarrassing dive in the box as he ran away from Ilori that brought a swift booking from referee Mike Dean.

A frustrated Bielsa did not hang around with a double substitution at the break as Samuel Saiz and Jack Clarke replaced and Lewis Baker and Alioski.

And the Leeds subs combined to almost break the deadlock less than a minute after the restart.

The hosts worked the ball right to Clarke whose cross was met with a ferocious strike by Saiz which deflected off Yiadom for a corner when it could easily have gone in.

Then the alert Jaakkola snatched the ball off Roofe’s toe as he looked to poke Liam Cooper’s header into the net.

Once again, Reading responded positively with Loader heading straight at Peacock-Farrell when off balance, Rinomhota driving them forward and Liam Kelly linking up play.

But they relied on Jaakkola to bail them out on 56 minutes with a wonderful, one-handed save to keep out Roofe’s header from a deep Douglas cross.

That was when the tide began to turn as the noise levels cranked up – and moments later the deadlock was broken.

Hernandez’s pass put Douglas in behind and, though Roofe couldn’t convert the cross, Dallas was on hand to slam in the loose ball from close range.

Reading regained their composure and pressed for an equaliser that almost came eight minutes later, but Loader failed to get the right contact as he slid to reach Gunter’s dangerous ball.

Hernandez dragged as weak effort wide for the hosts who also needed Peacock-Farrell to race off his line to stop McCleary’s through-ball from reaching substituteMcNulty.

Yet Jaakkola did even better when blocking Roofe’s volley with his body three minutes from time.

It could, and perhaps should, have been the turning point of the match as Royals won a penalty on 89 minutes.

Bacuna’s brilliant first touch sparked a surging run down the middle before he slipped the ball wide to Sims.

The on-loan Southampton winger was too quick for Douglas who lunged in, with Dean pointing to the spot.

But McNulty fired low and Peacock-Farrell saved to his right as Reading’s hopes of snatching a point were dashed in an instant.

Things may have got worse for the hosts had the match officials spotted Gunter punching the ball in frustration in his own area before the ball had gone out of play, which could have brought Leeds an injury-time penalty.

That, though, was a mere side-show to the main event and another defeat for Clement’s men.

Royals’ boss must now look to make home advantage count as three of their next four fixtues are at Madejski Stadium, with mid-table Stoke City the visitors this Saturday followed by Sheffield United in fourth and Middlesbrough in third.

Leeds United: Peacock-Farrell, Dallas, Douglas, Phillips, Cooper, Baker (Saiz 46), Klich (Shackleton 73), Alioski (Clarke 46), Hernandez, Forshaw, Roofe. Subs not used: Huffer, Halme, Roberts, Harrison. Booked: Alioski 44, Douglas 55, Dallas 81.

Reading FC: Jaakkola, Yiadom, Ilori, Moore, Gunter; Bacuna, Rinomhota, Kelly (McNulty 78), Swift (McCleary 61), Loader, Meite (Sims 70). Subs not used: Walker, O'Shea, Aluko, Blackett. Booked: McCleary 64, Bacuna 75.

Referee: Mike Dean.

Attendance: 27,806.