Mo Barrow struck a 90th minute winner to keep Reading outside the Championship relegation zone.
The game at Portman Road was locked at 1-1 after Gwion Edwards cancelled out Nelson Oliveira’s strike.
Due to results elsewhere, a draw would have sent the Royals into the bottom three, but substitute Barrow popped up to earn a 2-1 win.

Jose Gomes’ men remain 21st in the table, level on points with Rotherham United below, who also picked up three points. Ipswich are stuck at the foot of the pile and now 12 points adrift of safety.
Gomes named an unchanged side from the one which drew against Rotherham at Madejski Stadium last weekend, seeking just a second away win of the campaign.
And after a tight opening, Reading got their noses in front when Garath McCleary picked out Oliveira to tuck in his third goal for the club.
Yakou Meite almost doubled the tally with an acrobatic strike while at the other end, Emi Martinez pulled off a big save to preserve the lead at half-time.
The Argentine was forced into another stop soon after the restart before Reading were dealt a blow when Oliveira was forced off injured.
Martinez was again called into action to preserve the clean sheet and the pressure finally told when Edwards volleyed in from close-range with just seven minutes to play.
However, the Royals rallied to net again at the death as Barrow burst away to net for just the second time this season.
Ipswich pressed hard during stoppage time to earn a point, but Martinez was again on hand to deny them and earn Reading three priceless points.
The Tractor Boys prop up the table on 21 points, five behind Bolton, who in turn trail Rotherham and Reading by seven points. The Royals in 21st are two points behind Millwall and three off Wigan, who they face at Madejski Stadium next Saturday.
READING: Martinez, Yiadom, Miazga, Moore, Blackett, Ejaria (Loader 89), Baker, Swift, Meite, McCleary (Harriott 81), Oliveira (Barrow 58).
Subs not used: Walker, Gunter, McShane, O’Shea.
Goals: Oliveira (19), Barrow (90)
Yellow cards: Blackett (12), Oliveira (13), Moore (37), Barrow (90+1)
IPSWICH: Bialkowski, Chambers, Collins (Nsiala 40), Pennington, Bree (Skuse 45), Judge, Chalobah (Edwards 45), Nolan, Kenlock, Bishop, Quaner.
Subs not used: Gerken, Downes, Dozzell, Jackson.
Goal: Edwards (83)
Yellow cards: Nsiala (57), Nolan (65), Edwards (85)
Referee: Geoff Eltringham
Attendance: 23,009 (inc. 1,495 away)