The opening 45 minutes were distinctly forgettable, but it was a completely different story after the interval.
A firm header from Reeco Hackett opened the scoring and the lead was soon doubled by George Hirst.
Aiden O’Brien then came off the bench for his home debut and instantly found the net to leave Rovers deflated.
But there was still time for the superb Sean Raggett to head home deep into stoppage-time to double his tally for the week.
Danny Cowley made three changes from the side that saw off Burton, also on home soil, earlier in the week.
Marcus Harness returned in an unfamiliar wing-back role on the right, while Hackett occupied the opposite flag.
Skipper Clark Robertson came into the back three, as Connor Ogilvie, Mahlon Romeo and Denver Hume all dropped to the bench.
The contest took a while to liven up and half-chances were the order of the day for much of the first period.
Michael Jacobs was crowded out as he tried to get a shot away, while Josh Martin’s free-kick at the other end somehow evaded everyone on its way out of play.
The visitors were first to seriously threaten, courtesy of a Reo Griffiths effort that was gathered by Gavin Bazunu at the second attempt.
Louis Thompson then released Harness on the right and his low centre flew agonisngly behind three of his team-mates in the box.
But Rovers almost broke the deadlock on 26 minutes and it took an excellent Raggett clearance to deny them.
Matt Smith combined well with Tommy Rowe to tee-up Joe Dodoo, whose close-range shot was heading for the net until the Pompey defender managed to get it clear.
Jonathan Mitchell then made a couple of regulation saves to deny first Hirst and soon after the in-form Jacobs.
There was a moment of controversy just before the break when Ronan Curtis went down in the box under pressure from a couple of defenders, but referee Tom Reeves ignored his appeals.
Doncaster Rovers 0
Hackett swung in a great delivery shortly after the restart, with Joseph Olowu doing just enough to put off Hirst and stop the striker making a connection.
Raggett was then called upon to make another brave block inside the area, this time from Martin’s shot.
But it was the Blues who finally broke the deadlock on 56 minutes, when Harness swung in an excellent cross from the right.
Hirst was unable to get on the end of it, but HACKETT got above Kyle Knoyle at the back post to find the net with a bullet header.
And things got even better for the hosts just past the hour mark after Ben Jackson nodded the ball straight into the path of HIRST.
The striker superbly brought the ball under control and raced clear before squeezing a shot past Mitchell.
Cowley freshened things up with a substitution soon after, as Tyler Walker made way for Ryan Tunnicliffe.
With the pressure eased, Pompey started to play some neat passing football and a Jacobs curler was held by Mitchell following Tunnicliffe’s exquisite flick.
The hosts were looking to wrap things up and Mitchell just about managed to prevent Harness from finding the net from an acute angle.
January arrival O’Brien was handed a run out for the final 10 minutes, as Jacobs made way to warm applause.
And O’BRIEN marked his Fratton bow by putting the result beyond doubt just a few seconds later, beating Knoyle to bundle Curtis’ low centre over the line.
Cowley’s final switch saw the livewire Thompson make way for Ogilvie, but still the Blues looked to attack.
It took the fingertips to Mitchell to stop them scoring again, as he turned behind a long-range Curtis free-kick.
Doncaster looked like all their energy had been sapped clear and the Blues controlled the closing stages.
And they put the cherry on the cake right at the death, as a fine free-kick into the box by Hackett was firmly nodded home by RAGGETT.
Pompey (3-4-3): Bazunu; Carter, Raggett, Robertson (c); Harness, Thompson (Ogilvie 83), Jacobs (O’Brien 80), Hackett; Curtis, Harness, Walker (Tunnicliffe 67)
Goals: Hackett 56, Hirst 63, O’Brien 81, Raggett 90+5
Subs not used: Webber, Romeo, Jewitt-White, Hume
Doncaster (4-1-4-1): Mitchell; Knoyle, Younger, Olowu, Jackson (Agard 70); Gardner; Griffiths, Smith, Rowe (c), Martin (Barlow 78); Dodoo (Odubeko 60)
Subs not used: Jones, Williams, Seaman, Clayton
Referee: Tom Reeves
Attendance: 14,767 (295 away fans)