The home side dominated most of the first half but was punished for defensive lapses.
Tyrese Campbell and Steven Fletcher gave Stoke a 2-0 half-time lead and Jacob Brown struck deep into stoppage-time to make it 3-0.
Reading had won seven of its eight opening matches to lead the second tier by seven points at one stage.
But a 3-2 defeat at Coventry City, followed by a 3-0 home loss to Preston North End on Thursday (AEDT), had seen the gap to the chasing pack reduce substantially.
"There is a mix of immaturity in some moments and a mix of fatigue, accumulation of games and injuries that we are going through," Reading boss Veljko Paunovic said.
"I have to say, though, that there were still a lot of positives."
Watford was made to work for a 3-2 victory over Coventry at Vicarage Road, in a game that sprung into life in the second half.
Ismaila Sarr struck a 83rd-minute penalty to secure the win after William Troost-Ekong had equalised following a Coventry comeback.
After Andre Gray put the Hornets ahead, the Sky Blues turned the game around through two goals in two minutes from Gustavo Hamer and Tyler Walker but they could not hold on.
Marco Stiepermann's 84th-minute goal earned Norwich a hard-fought 1-0 win over fellow high-flyer Swansea at Carrow Road.
The German midfielder fired in the latest of a series of late winners for the Canaries after being set up by Emi Buendia to make it seven games unbeaten for Daniel Farke's in-form side.
It is now third, level with second-placed Watford on 21 points.
Bournemouth returned to winning ways with a deserved 3-1 victory away to Birmingham City to climb to fourth on the Championship.
Brentford played out a 0-0 draw with Middlesbrough while the match between Sheffield Wednesday and Millwall also finished goalless.
Derby County, on the verge of a takeover, lost 2-0 to Barnsley and is now bottom of the table, while Blackburn Rovers beat Queens Park Rangers 3-1.
Rotherham United overcame Preston North End 2-1 and Nottingham Forest saw off Wycombe Wanderers 2-0.
Huddersfield Town and Luton Town drew 1-1.