Reading’s relegation fight will go down to the final day after Ipswich scored four late goals to inflict Royals’ heaviest defeat at the Madejski in almost 12 years.
After a goalless first half, four goals in the final 19 minutes for Town leaves Royals only two points above the drop zone before they travel to promotion-chasing Cardiff next Sunday.
Martyn Waghorn broke the deadlock with a shot on the spin before teeing up Jordan Spence to fire home a second from a tight angle. In stoppage time, a defensive mix-up by Chris Gunter and Vito Mannone gifted Town’s third as Freddie Sears headed into an empty net. There was time for Callum Connolly to fire home a fourth from close range to round off a thoroughly miserable afternoon for Royals fans.
Mustapha Carayol showed his pace down the left early on for Town, wriggling past a few Royals defenders before cutting in and firing at goal from a tight angle. Mannone dived to palm the effort away and moments later the Gambian winger saw another shot blocked by teammate Ben Folami.
At the other end, the ball fell to Frenchman Yann Kermorgant after a Sonny Aluko corner was not dealt with, but after finding space to shoot, his effort was diverted around the post.
Jon Dadi Bodvarsson also threatened for Royals, striking a volley on the spin, but his attempt was deflected out for a corner by Town captain Jonas Knudsen.
Carayol nearly put the visitors in front on 24 minutes, letting fly from 30 yards but was denied by Mannone who got down well to turn it away at the far post.
Royals should have taken the lead when Kermorgant released Modou Barrow down the wing, but his low cross was just beyond the onrushing Bodvarsson, who could not turn the ball into the net.
Waghorn tested the hands of Mannone as the clock ticked towards the break and Connolly saw his attempt blocked by the recently announced player of the season, Liam Moore.
Aluko broke away down the right and fed the last chance of the half to Barrow, who could only blast over the bar to leave it goalless at the break.
Both sides were forced into substitutions either side of half-time, with Ipswich danger man Carayol and Royals left-back Omar Richards both unable to continue.
John Swift looked lively after the restart for Royals, his driving run ending with a curling effort at goal, which was deflected out for a corner.
Town substitute Freddie Sears then received the ball from Knudsen and got a shot off, but it was too close to Mannone in the Reading goal to cause any harm.
A deft Kermorgant chip into Barrow nearly produced the opening goal, but the former Swansea man fired narrowly over.
Royals then broke at pace with Liam Kelly playing it out to Bodvarsson in space on the right. His cross was met by Swift whose first-time effort had to be tipped over the bar by Bialkowski.
Town finally broke the deadlock on 71 minutes, as Spence found the unmarked Waghorn in the box, who turned and fired into the net past Mannone for his 15th goal of the season.
Barrow almost equalised immediately for Royals, as his cross deflected off Spence and looped goalwards, but Knudsen was present to turn it out for another Reading corner.
Ipswich then doubled their lead with just over ten minutes to go, as Jordan Spence cut in from the right and fired a low shot from a tight angle. Mannone was taken by surprise and beaten at his near post to heap further misery on Reading.
Reading looked to pull one back, but Moore headed straight at Town keeper Bialkowski from a corner.
It got worse for Royals in injury time as a Mannone clearance ricocheted straight into Sears, who headed into an empty net for Town’s third.
Ipswich added a fourth as Royals gave the ball away cheaply in midfield and Connolly swept home for the visitors.
Reading: Mannone, Gunter (c), Moore, Ilori, Richards (Elphick 49), Kelly, Swift, Aluko, Barrow, Bodvarsson (Martin 80), Kermorgant (Smith 82).
Subs not used: Van den Berg, Edwards, Jaakkola, Rinomhota,
Ipswich: Bialkowski, Knudsen (c), Webster, Waghorn, Spence, Connolly, Nydam (Gleeson 77), Kenlock, Carayol (Sears 44), Folami (Cotter 89), Woolfenden
Subs not used: Celina, Crowe, Morris, McLoughlin.
Attendance: 17,683
Referee: Keith Stroud