Rovers dominated attacking play with a superb performance but twice found themselves behind – first to a Gareth Evans strike on the breakaway and then to Ellis Harrison’s added time header which could not be overturned.
Reece James had equalised for Rovers eight minutes from time and, as throughout the game, they looked the more likely to win the game.
What cost them was a lack of a killer touch in front of goal.
Niall Ennis failed to regain fitness in time meaning Kieran Sadlier was fielded as a lone striker with little senior attacking options on the bench.
And the failure to take anything from a game which they dominated will only intensify questions over a lack of success in chasing a striker in the transfer window.
Rovers played some sublime football in the opening period with swift, one-touching passing helping them find their way through stodgy opposition.
Portsmouth had spells of possession but produced little to trouble Rovers, looking devoid of ideas and struggling to get service into their increasingly frustrated front two.
That included former Rovers striker John Marquis, who was somewhat harshly jeered by the home support given his superb goalscoring record during his three years at the Keepmoat.
Barring an early snap shot, which proved no issue for Rovers keeper Seny Dieng to deal with, Marquis offered little of the threat he had shown in his time in the red and white and was substituted at half time as Pompey boss Kenny Jackett desperately searched for inspiration.
For Rovers, there was plenty. All they lacked was someone to stick the ball in the back of the net.
The industrious Alfie May struck the bar from 20 yards early in the game.
While they dominated in attacking terms and produced the sort of football that will make them the envy of many at the level, Rovers struggled for clear cut chances in front of goal.
Their best opportunity fell to Kieran Sadlier who could only turn wide with his thigh as he met James Coppinger's superb cross.
Jackett switched to a front three after sacrificing Marquis for Harrison at the break but Rovers continued to look the more likely to score.
They found themselves behind on the hour mark however.
James misjudged the bounce of a long clearance, allowing Ben Close power clear from half way. He switched play to Evans who galloped forward and rifled a shot beyond Dieng.
Portsmouth were temporarily buoyed and Close drew a stunning one-handed save from Dieng with a shot from the edge of the box.
But Rovers quickly got back on the front foot with Whiteman rattling the bar and Coppinger and Taylor both going close.
The breakthrough finally came on 82 minutes. May lashed in a cross which MacGillivray parried, only as far out as James who lashed in a volley via a couple of deflections.
Rovers looked the more likely to go on and win the game but were hit with the suckerpunch in added time when Harrison looped a header over Dieng to snatch the win.
ROVERS: Dieng; Halliday, Anderson, Daniels, James; Sheaf, Whiteman; May (Wright 90), Coppinger, Taylor; Sadlier. Subs not used: Lawlor, Amos, Gomes, Greaves, Longbottom, Kiwomya.
PORTSMOUTH: MacGillivray; Bolton, Burgess, Raggett, Brown; Harness, Close, Naylor, Evans; Marquis (Harrison 46), Pitman. Subs not used: Bass, McCrorie, Haunstrup, Williams, Downing, Walkes.
REFEREE: Andy Haines (Tyne & Wear)
ATTENDANCE: 8,962 (1,351 away)