In the first half, Reading ought to have been leading having spurned two excellent chances.
Sone Aluko broke down the left and crossed for Lucas Joao whose header was well saved by Declan Rudd.
Rudd then made an even more impressive save as he denied Aluko from close range after the Reading forward had collected Michael Olise’s cross at the far post.
The Royals were given a huge reprieve when Preston missed a penalty three minutes into the second half.
Academy defender Tom McIntyre slid in late on Emil Riis Jakobsen and John Brooks pointed to the spot without facing any protests.
Daniel Johnson had scored his previous 15 penalties but took a long stuttering run up and struck the ball tamely to allow Rafael Cabral to save easily with his legs.
It was then Preston’s terms for a let off. Centre back Jordan Storey gifted the ball to Joao who had a clear run at goal. To his credit, Storey caught him and timed a perfect tackle from the most perilous of positions to deny the Portuguese striker.
It seemed only a matter of time before a goal came and it went the way of Preston, in slightly fortuitous circumstances.
Storey crossed to Scott Sincair who scored from an offside position. The ball had however taken a slight ricochet of Reading defender Omar Richards on the way across to him.
The second was more simple – a direct ball to Jakobsen who easily outpaced McIntyre and slid past Cabral before Brad Potts scored a third in time added on, converting Tom Barkhuizen’s low cross on the break.