Championship leaders Reading suffered a third straight defeat as Stoke City capitalised on defensive errors at the Madejski Stadium.
The Royals dominated possession but were 2-0 down at half-time following clinical finishes from Tyrese Campbell and Steven Fletcher.
Potters keeper Angus Gunn had saved two early headers from Alfa Semedo, while Lewis Gibson missed a chance to pull one back before the break.
Tomas Esteves and Sam Baldock shot narrowly wide for Reading in the second half, before substitute Jacob Brown added a third for the visitors deep into stoppage time.
Reading were the early pacesetters in the second tier, winning seven of their first eight games to establish a seven-point lead at the top of the table, but Veljko Paunovic's men have seen their advantage cut to just one point after their defeat and victories for Watford and Norwich City on Saturday afternoon.