Match ends, Doncaster Rovers 1, Portsmouth 2.
Ellis Harrison's stoppage-time header earned a much needed but scarcely deserved win for Portsmouth at Doncaster.
Doncaster dominated the attacking play but found themselves behind to a Gareth Evans strike.
Reece James looked to have rescued a point with an equaliser only for substitute Harrison to loop in a header to snatch the win.
Alfie May rattled the bar for Doncaster, beginning a period of attacking dominance but they struggled for clear-cut chances.
Kieran Sadlier turned a shot narrowly wide with his thigh in the best of their first-half opportunities.
Kenny Jackett switched to a three-man front line for the second half but Doncaster continued to dominate.
Portsmouth however took the lead on the hour when James misjudged a clearance allowing the visitors to break with Evans slamming a shot home.
Ben Whiteman hit the bar as Rovers continued to push and they found reward when James lashed in a volley on 82 minutes.
But Harrison sent a header over Seny Dieng in added time to give Portsmouth the win.
Report supplied by PA Media
- 19MaySubstituted forWrightat 90+4'minutes
- 19HarnessBooked at 41minsSubstituted forWilliamsat 82'minutes
- 4NaylorBooked at 27mins
- 10MarquisSubstituted forHarrisonat 45'minutes
- Andy Haines
- Shots on Target
Second Half ends, Doncaster Rovers 1, Portsmouth 2.
Corner, Doncaster Rovers. Conceded by Christian Burgess.
Attempt blocked. Brad Halliday (Doncaster Rovers) right footed shot from the centre of the box is blocked. Assisted by Jon Taylor.
Corner, Doncaster Rovers. Conceded by Tom Naylor.
Substitution, Doncaster Rovers. Joe Wright replaces Alfie May.
Foul by James Coppinger (Doncaster Rovers).
Ben Close (Portsmouth) wins a free kick in the defensive half.
Attempt blocked. Jon Taylor (Doncaster Rovers) left footed shot from the centre of the box is blocked. Assisted by Benjamin Whiteman.
Goal! Doncaster Rovers 1, Portsmouth 2. Ellis Harrison (Portsmouth) header from the centre of the box to the top left corner. Assisted by James Bolton with a cross.
Attempt missed. Benjamin Whiteman (Doncaster Rovers) right footed shot from outside the box is high and wide to the right. Assisted by Kieran Sadlier.
Tom Anderson (Doncaster Rovers) wins a free kick in the defensive half.
Foul by Ellis Harrison (Portsmouth).
Attempt missed. Brad Halliday (Doncaster Rovers) right footed shot from outside the box is too high. Assisted by Benjamin Whiteman.
Alfie May (Doncaster Rovers) wins a free kick in the attacking half.
Foul by Gareth Evans (Portsmouth).
Attempt blocked. James Coppinger (Doncaster Rovers) right footed shot from the right side of the box is blocked. Assisted by Alfie May.
Substitution, Portsmouth. Ryan Williams replaces Marcus Harness.
Goal! Doncaster Rovers 1, Portsmouth 1. Reece James (Doncaster Rovers) left footed shot from the centre of the box to the centre of the goal.
Corner, Doncaster Rovers. Conceded by Sean Raggett.