Winning three games in a row had cemented the Royals in the top six and, while that remains so, this was a chastening result.
Nelson Oliveira got things going with a third-minute penalty and, by the time Yann Kermorgant scored for Reading (39), Wes Hoolahan, Russell Martin and Alex Pritchard (two) had netted for City.
Hoolahan added a second before the break and Cameron Jerome made it 7-1 late on.
Huddersfield's pursuit of the top two may well be over after they lost at Nottingham Forest.
Defender Eric Lichaj put Mark Warburton's men ahead at the City Ground and Jamie Ward sealed a 2-0 win.
Elsewhere in the top six, Leeds put their mini-wobble behind them and severely dented Preston's play-off hopes in the process with a 3-0 win.
Kemar Roofe got them started before Pablo Hernandez and Souleymane Doukara sealed the win, while Preston's Alex Baptiste saw red late on.
Fulham are back in the top six after a 3-0 win at home to Ipswich
Floyd Ayite scored early on and Scott Malone and Stefan Johansen made sure.
Gary Rowett enjoyed a winning return to Birmingham with new side Derby.
Rowett was surprisingly sacked last year but went ahead at St Andrew's when Tomas Kuszczak put into his own goal
Birmingham enjoyed Che Adams' leveller but Tom Ince ensured a sweet return for Rowett in the 90th minute
Jonathan Kodjia scored again for Aston Villa but they were pegged back by Lloyd Dyer as they drew 1-1 at Burton, while Sean Morrison and Peter Whittingham earned Cardiff a 2-1 win over Brentford, for whom Sergi Canos netted.
At the bottom of the table, Bristol City boosted their survival hopes with a 3-0 crushing of in-form Wolves.
Jamie Paterson opened the scoring and Tammy Abraham added a brace, the first from the spot
Jon Dadi Bodvarsson pulled one back to no avail.
Blackburn occupy the final spot in the bottom three and trail City by four points
They lost 2-0 at home to Barnsley, Marc Roberts and Marley Watkins on target inside 10 minutes.
Rotherham are already relegated and Wigan could soon join them, but the Latics gave themselves a real lifeline as they beat the Millers 3-2.
Danny Ward and Anthony Forde twice put the Millers ahead but Gabriel Obertan and Alex Gilbey replied before Nick Powell won it in the seventh minute of added time.
Source : PA