A battling performance from Paul Clement's men was enough to secure a draw at promotion-winning Cardiff City and the point they needed to ensure they would be playing Championship football again in 2018
- Elphick's headed block from Ralls the best opening of a goalless first half
- Moore and Gunter blocks deny City the win they needed in gutsy draw
- Results elsewhere mean Cardiff go up and Reading are safe
The Royals did well to calm a raucous atmosphere from an expectant home crowd and carved out the first half chance. A dinked ball over the top was brought down by Bodvarsson who stabbed the ball across the box but it was hacked clear before Edwards could get a toe to it.
City were looking to go aerial into the box at every opportunity and from a headed clearance from a corner, Joe Ralls hooked a volley at goal which was blocked by the head of Tommy Elphick as it fizzed towards goal.
Cardiff came within a whisketr of breaking the deadlock when Paterson missed his kick on the edge of the area and it rolled to Hoillet whose arcing effort sailed just wide of the right post after 20 minutes.
It took a timely sliding tackle from Ilori to prevent Hoilett from running onto a flick on into the Reading area. And appeals for a penalty were rightly waves away by referee Robert Madley.
But Neil Warnock's men were getting closer - a Joe Bennett overlap down the left saw him cut the ball back for Zohore whose stabbed effort from 12 yards out was blocked by Dave Edwards in a crowded Royals box.
Reading's rearguard action wasn't aided by an injury to Ilori who was replaced with Liam Kelly with ten minutes of the first half remaining. Leandro Bacuna slotted in an right-back as a result.
Mendez-Laing's cross from the right thankfully ricocheted kindly for Mannone to gather on his goalline. But the Royals battled their way to the break with the game goalless.
Half time | Cardiff City 0-0 Reading
The first chance of the second period fell Reading's way. Kelly threaded a lovely pass into the path of Bacuna who had burst into the City box down the right. But Bamba did enough to put the Reading right-back off as he tried to get a cross into the waiting Bodvarsson.
Zohore at the other end skied an effort high over Vito Mannone's crossbar to the Royals' relief.
Mendez-Laing kept a loose ball in play on the right side and he weaved his way into the box and dragged an effort at goal, but it didn't have enough on it to trouble Mannone who was down low to his left to save comfortably.
A dangerous set piece of our own saw Kelly deliver a testing inswinging corner that Bamba somehow headed behind at the near post before a cluster of bodies bore down on it.
At the other end, with an hour played, Bryson squirmed free inside the Reading penalty area, but his low drive was calmly saved by Mannone low to his right this time.
Gunter did well to block a Mendez-Laing cross from the right and the resultant corner skidded off the turf past Hoilett and away from danger.
And Moore kept pace with Mendez-Laing who broke down the right to take the sting out of a cross-shot and allow Mannone to gather the ball into his body once more.
The best chance of the game came with seven minutes left - Bennett skipped past an Elphick challenge and fizzed a low cross across the six yard box. It fell to the feet fo Zohore, but his low drive was blocked on the line by three Reading bodies.
Mendez-Laing drove a deflected effort wide with time ticking away - but a draw was going to be enough to ensure Reading's safety and, as other scores filtered in, Cardiff's promotion.
Five minutes of injury time was signalled and celebrations began around the Cardiff City Stadium upon hearing news of a third goal for Birmingham at home to top two-chasing Fulham.
With Derby 4-1 up at home to the Tykes and Burton losing at ten-man Preston, the Royals fans were celebrating survival too.
A pitch invasion and a flare halted the game for a good period of time. And as both teams saw out injury time to seal a point that they both needed, the referee blew his whistle on the 2017-18 Championship season.
Reading will be playing second tier football once more next season. Thank you for all your support through what has been a difficult campaign. Here's to a new challenge in 2018-19!
Full time | Cardiff City 0-0 Reading
Cardiff City: Etheridge, Peltier, Bennett, Bamba, Morrison (c), Bryson, Ralls, Hoilett (Ward 78), Paterson, Mendez-Laing, Zohore (Madine 86).
Subs: Murphy, Ecuele Manga, Richards, Pilkington, Grujic.
Reading: Mannone, Gunter (c), Moore, Elphick, Ilori (Kelly 33), Bacuna, Van den Berg, Edwards, Aluko (McShane 83), Barrow, Böðvarsson (Kermorgant 70).
Subs: Jaakkola, Evans, Swift, Martin.
Yellow: Elphick, Kermorgant