Liam Mandeville's strike and Christian Burgess' own goal saw Portsmouth's three-game winning run come to an end as they were beaten 2-1 at Doncaster.
Mathieu Baudry's calamity second-half own goal gave the visitors hope, but their chances of grabbing an equaliser were hit when Dion Donohue was dismissed.
Doncaster went ahead with their first attack - some neat play from Tommy Rowe set up Rodney Kongolo, whose first-time cross was side-footed home by Mandeville.
Two minutes later Rovers doubled their lead. Harry Toffolo's corner was met at the far post by Rowe and his downward header did enough, with the help of defender Burgess, to beat Luke McGee in the Pompey goal.
The woodwork denied Portsmouth a way back into the match, as Conor Chaplin's delightful free-kick hit the edge of the right-hand post early in the second half.
But after 54 minutes they reduced the deficit thanks to a defensive blunder, as Baudry's back pass proved too strong for goalkeeper Ian Lawlor and he could not keep the ball out of his own net.
Portsmouth were reduced to 10 men after 68 minutes when Donohue was shown a straight red card by referee Martin Coy for aiming a kick at Rovers substitute Niall Mason, having been alerted to the incident by fourth official Michael Sainsbury.
Rovers were indebted to a wonderful Lawlor save in injury-time as he flew to his left to keep out Jamal Lowe's header and ensure a home win.