Match ends, Ipswich Town 2, Doncaster Rovers 1.
A late strike from Luke Chambers gave Ipswich victory over Doncaster and kept them on the fringes of the Championship play-off places.
Daryl Murphy's 13th of the season, a header from Tyrone Mings cross, gave Town the lead.
With eight minutes remaining, Chris Brown equalised from the spot when Mings was judged to have pushed Mark Duffy inside the area.
But, in the 86th minute, Chambers scored the winner with a fierce strike.
The win moves Ipswich into seventh place, with only Brighton's superior goal difference keeping Mick McCarthy's side out of the top six.
Doncaster remain with their heads just above water at the other end of the table, with three points separating them and Millwall, who are in 22nd place.
Left-back Mings had the first clear chance for Ipswich when his 25-yard shot tested keeper Sam Johnstone, before midfielder Stephen Hunt went even closer with a shot that drifted narrowly wide of a post.
Doncaster were far from out of it. Striker Chris Brown forced a save from Dean Gerken, who then turned a header from Gabriel Tamas around a post.
Ipswich finally broke the deadlock after the break when Mings's cross was converted by Murphy.
Town substitute Sylvan Ebanks-Blake almost added a second but fired wide, following good closing down by team-mate Luke Hyam.
A largely uneventful second half seemed to be heading towards a home win when Doncaster received a lifeline out of nothing.
Mings was punished for pushing substitute Duffy with 82 minutes on the clock and Brown made no mistake from 12 yards.
But Ipswich restored their lead less than three minutes later when Jonathan Williams' shot was deflected to Chambers, who rattled the ball past Johnstone.
Ipswich manager Mick McCarthy:
"If you can get in the play-offs, one team has to win. It might be a side who gets sixth and has momentum - like us, or Bournemouth or Brighton. We would all provide difficult opposition and the play-offs are such a lottery.
"People recognise the spirit in the team but we also have good players. The defence have chipped in with goals and Luke Chambers has been excellent, having played out of position all season."
Doncaster manager Paul Dickov:
"I am proud of the players and the performance they put in. We didn't just change the system once, we changed it three or four times during the game.
"After going 1-0 down, I thought the reaction to get back into the game was fantastic.
"It gives me a lot of positives going into the last four games because as an away performance that was probably one of our best today."
- 6BerraBooked at 40mins
- 11AndersonSubstituted forEbanks-Blakeat 45'minutes
- 25WilliamsSubstituted forRichardsonat 90+5'minutes
- 12HuntSubstituted forNoubleat 45'minutes
- 3HusbandSubstituted forStevensat 80'minutes
- 4FurmanSubstituted forDuffyat 77'minutes
- 20MéitéBooked at 44minsSubstituted forRobinsonat 90+1'minutes
- 9BrownBooked at 16mins
- 10SharpBooked at 17mins
- 21De Val Fernandez
- Graham Scott
- Shots on Target
Second Half ends, Ipswich Town 2, Doncaster Rovers 1.
Attempt saved. Frank Nouble (Ipswich Town) right footed shot from the centre of the box is saved in the bottom right corner. Assisted by Sylvain Ebanks-Blake.
Substitution, Ipswich Town. Frazer Richardson replaces Jonathan Williams.
Corner, Doncaster Rovers. Conceded by Dean Gerken.
Attempt saved. Mark Duffy (Doncaster Rovers) right footed shot from outside the box is saved in the bottom left corner. Assisted by Enda Stevens.
Substitution, Doncaster Rovers. Theo Robinson replaces Abdoulaye Méité.
Corner, Doncaster Rovers. Conceded by Frank Nouble.
Attempt saved. Chris Brown (Doncaster Rovers) header from the left side of the box is saved in the centre of the goal. Assisted by David Cotterill with a cross.
Goal! Ipswich Town 2, Doncaster Rovers 1. Luke Chambers (Ipswich Town) right footed shot from the centre of the box to the bottom left corner.
Attempt blocked. Jonathan Williams (Ipswich Town) right footed shot from the left side of the box is blocked. Assisted by Tyrone Mings.
Foul by Billy Sharp (Doncaster Rovers).
Tommy Smith (Ipswich Town) wins a free kick in the defensive half.
Offside, Doncaster Rovers. James Coppinger tries a through ball, but Chris Brown is caught offside.
Goal! Ipswich Town 1, Doncaster Rovers 1. Chris Brown (Doncaster Rovers) converts the penalty with a right footed shot to the bottom left corner.
Penalty conceded by Tyrone Mings (Ipswich Town) after a foul in the penalty area.
Penalty Doncaster Rovers. Mark Duffy draws a foul in the penalty area.
Substitution, Doncaster Rovers. Enda Stevens replaces James Husband because of an injury.
Delay over. They are ready to continue.
Delay in match James Husband (Doncaster Rovers) because of an injury.