Daryl Murphy’s 13th goal of the season gave Ipswich the lead shortly after the restart but it looked like their top-six hopes would be dented after Chris Brown equalised from an 82nd-minute penalty.
But three minutes later, Ipswich skipper Luke Chambers hammered home to move Ipswich into seventh, level with sixth-placed Brighton.
Against a Doncaster side just above the relegation zone, Ipswich did not take long to settle and Paul Anderson’s flick-on from Stephen Hunt’s free-kick just evaded four onrushing team-mates.
They went even closer in the 14th minute when left-back Mings – making only his fifth ever Championship start – tested Sam Johnstone from 25 yards, the Doncaster keeper fortunate to see the rebound cleared from danger.
Ipswich should have taken the lead in the 20th minute when Anderson showed great pace to streak away from Abdoulaye Meite, but his first-time cross was slid just wide from Hunt.
Doncaster were far from out of it with a grounded Brown bringing a save from Ipswich keeper Dean Gerken before Gabriel Tamas was given far too much room in the Town area and his powerful header was turned around by Gerken.
The best chance of the first half fell to the home side in injury time when Hunt’s wicked inswinging free-kick was headed goalwards by Tommy Smith but Johnstone produced a fantastic diving save as the ball was destined for the far corner.
It took Ipswich just one minute and seven seconds to break the deadlock after the restart.
A patient build-up involving Luke Hyam and Cole Skuse got the ball out to Mings and his cross was headed home by Murphy.
The play-off chasing hosts had the momentum and they caused more panic in the Doncaster defence when Tamas’ attempt to clear Murphy’s cross was almost hacked into his own net.
Sylvan Ebanks-Blake, one of two attacking subs by Ipswich boss Mick McCarthy at the interval, then shot wide after good closing down from Hyam.
A largely uneventful second half seemed to be heading safely towards a home win when Doncaster received a lifeline out of nothing.
Mings was adjudged to have pushed substitute Mark Duffy just inside the box and Brown made no mistake from 12 yards with 82 minutes on the clock.
But Ipswich restored their lead less than three minutes later when Williams’ shot was deflected to Chambers, who rattled the ball past Johnstone.
A nervy home side were hanging on and Gerken had to save from Brown’s close-range header and Duffy’s low 20-yarder before Frank Nouble wasted a glorious chance to make it three.