Jason Scotland's penalty proved the winner for Ipswich, ending a five-match winless run, as Doncaster ended the season with a sixth home loss in a row.
Ipswich defender Tommy Smith headed his side in front and hit the bar with another chance before Ryan Stevenson's 30-yard strike made it 2-0.
Fabien Robert slid in to score for Doncaster before Scotland netted from the spot after he had been fouled.
Habib Beye's injury-time strike ensured an exciting finale as Ipswich held on.
Rovers ended the season at the bottom of the table following their 26th defeat of the campaign.
Ipswich - who finished 15th - looked the better side in the early stages as Lee Martin forced a low save from Gary Woods and Stevenson's well-struck effort was deflected wide.
The visitors' pressure paid off when Smith was left unmarked to head home Martin's left-sided corner. Smith almost doubled his tally from Ipswich's sixth corner inside the opening quarter of the game as he hit the bar.
Doncaster were helpless to stop Ipswich's second as Stevenson collected the ball 30 yards out and unleashed a powerful drive that struck the bar before going over the line.
The home team were back in the contest when Robert finished Simon Gillett's cross and the Doncaster goal scorer nearly added a second, soon afterwards, but his header was ruled out for offside.
Dean Saunders's team had swung the momentum their way and were almost level within a minute of the restart, when Beye was alive to James Coppinger's quickly-taken free-kick but glanced his header wide.
But Ipswich looked like they had made the points safe when substitute Scotland drew a late challenge from Beye in the box and picked himself up to dispatch the kick.
Beye partially made up for his error by scrambling home James O'Connor's speculative set-piece in injury time.
Doncaster manager Dean Saunders:
"We started the game sloppy, I've never seen us misplace so many passes.
"I thought we played well at Coventry, we got a great result at Middlesbrough, we played well against Portsmouth.
"If we'd have won the game - you can't help it, human nature - you go away thinking 'everything's all right, we'll be all right next season'. Seeing that just makes my mind up.
"We've gifted three goals again - it's been happening all season. All the chances they got we gave them."
Ipswich manager Paul Jewell:
"I'm angry because at 2-0 we were playing well and should have been out of sight.
"The chances we've had to go three or four goals up before they scored could have killed them off, but we didn't and then we're always susceptible to concede goals.
"Someone's just said that it summed up the season. For half an hour, until we scored the second goal, we controlled it and looked like we were going to score every time we went forward.
"But then we give teams a foothold in the games because we stop doing the simple things and the unglamorous things that would have got us through certain situations."