Stoke City substitute Sam Surridge slammed in an 85th-minute winner as the Potters finally saw off Reading in their first home game watched by a crowd in 17 months.
In front of 19,068 fans, which created a cracking atmosphere, the Royals twice came from behind in a memorable game in which most of the scoring was done inside three sensational first-half minutes.
On 25 minutes, Nick Powell put Stoke ahead, but John Swift cashed in on awful defending by the Potters to level 60 seconds later before, just two minutes later, Jacob Brown's low shot was missed by Reading keeper Rafael Cabral.