An unfortunate own goal looked set to separate the sides at the City Ground this afternoon until Yakou Meite came off the bench to earn the Royals a vital point - and Reading were denied by the woodwork twice in their search of victory.
Some miscommunication between Moore and Rafael gifted the hosts an early corner and it was headed out to Ameobi whose low drive was charged down. At the other end, Lucas Joao earned an early opportunity to shoot but skied his effort high over Brice Samba's crossbar.
Reading were enjoying good spells of possession and Yiadom fed Olise down the right side of the box. His low cross was in between Joao and Puscas in the middle though and the hosts cleared the danger.
More joy down the right came through Yiadom who delivered a dangerous cross but the ball skidded past everyone including the lurking Olise in the middle. At the other end, Moore headed clear a Cyris Christie cross that sought the head of Glenn Murray.
The Royals continued to make the pace - Yiadom's low deflected cross hacked behind for a corner. Then Richards' dinked ball in from the left too close to Samba for Joao to take advantage of. Krovinovic tested Rafael's handling with an effort from distance but the Brazilian smothered it into his body on the bounce.
Rafael had to be alert at his near post to prevent the home side from taking the lead midway through the half - a cross from the left was flicked goalwards at the near post by Murray, Rafael parried it well and it landed safe.
Joao threatened moments later when he collected the ball on half way, squeezed between two men and strode towards the Forest box. He earned a yard to get his shot away but it was easy for Samba to save.
The game was beginning to open up and Lolley nearly broke the deadlock when he arced a right-footed effort just wide of the right post. Olise arrowed over from 30 yards out at the other end, but the game remained goalless.
How the visitors weren't ahead soon after is a mystery. A worked corner saw McIntyre cleverly flick a low passed corner into the middle to Joao who scuffed his effort completely. The keeper was completely wrongfooted but the ball spun onto the post and wide as Joao looked to apply the finishing touch but agonisingly had to watch it deflect behind for a goal kick.
As two minutes of injury time were signalled, Reading broke through Joao and Olise. The ball was bundled into the path of Puscas but his instinctive shot was charged down. The teams were level as the rain began to fall at the break.
Half-time: Nottingham Forest 0-0 Reading
The second half began with Olise winning a free kick 25 yards out. He took the set piece but Samba was well behind his shot to gather it in on his goalline. At the other end, Knockaert crossed from the left and an umarked Krovinovic glanced a header wide.
But the hosts took the lead early in the second period. Ameobi outmuscled Richards on the right and strode along the byline before fizzing a low cross into the six yard box. Murray and Holmes arrived together and the ball was hammered high into the back of the Reading net for 1-0 - whether the Royals defender or the former Reading striker got there first was difficult to see but the home side had the advantage.
Almost immediately, Reading nearly levelled. Puscas was played in by Laurent but he arrowed a right-footed attempt over the crossbar when in a good position to test Samba.
Forest had their tails up and itr took a flying save from Rafael to deny Ameobi who pulled the trigger from distance and looked set to celebrate a second until Reading's keeper intervened.
The hosts were looking comfortable in their lead, defending in numbers to restrict the Royals to very little opportunity in front of goal. Puscas threaded a low centre in towards Meite in the middle but the Royals substitute couldn't stab a shot away although Joao retrieved it on the far side the danger had subsided.
Olise weaved his way forward down the right but placed his shot wide of the bottom right corner and time was starting to tick away.
The post stood in the Royals' way again with a quarter of an hour remaining - a threaded ball found its way to Yiadom who drilled a low shot against the base of the near post, perhaps Samba getting a touch to his with his legs to help take the effort off target.
Entering the final ten minutes, Yiadom held a cross up for Joao to attack and he rose above his marker to power a header just over the crossbar.
But Joao turned provider moments later to bring Reading back on level terms. He held off his man well to turn inside and split the Forest defence with a fine pass that found Meite. His first touch took him into the box but with plenty still to do he arrowed a left-footed shot past Samba to make it 1-1.
Suddenly, Reading were sniffing a winner and Aluko hooked a volley wide. Then a deep Olise cross found Holmes at the back post but he couldn't direct his header on target.
Olise swept a free kick harmlessly wide from 20 yards out late on and Meite tried from a similar position but Samba was well behind it. At the end of three minutes of injury time, a late Yiadom cross from the right fell for Joao who hooked an effort goalwards but saw his shot charged down to the sound of the final whistle.
Reading remain unbeaten in four and came from behind to earn what might prove a crucial point on the road.
Full-time: Nottingham Forest 1-1 Reading
Nottingham Forest: Samba, Christie, Figueiredo, Ameobi, Bong, Cafu, Lolley (Knockaert 33), Murray (Grabban 72), McKenna, Krovinovic (Freeman 80), Garner.
Unused subs: Smith, Mbe Soh, Mighten, Yates, Blackett, Taylor.
Scorer: Holmes (og) 50
Reading: Rafael, Yiadom, Richards, Moore (c), Holmes, McIntyre, Laurent, Semedo (Meite 62), Olise, Puscas (Aluko 74), Joao.
Unused subs: Southwood, Esteves, Baldock, Gibson, Tetek, East, Camara.
Scorer: Meite 81