Bristol Rovers took advantage of Doncaster Rovers' growing defensive injury problems to come from behind and win at the Keepmoat Stadium.
John Marquis opened the scoring after just four minutes with his first goal in 12 games.
But from that point it went downhill as the visitors turned the game on its head with goals from Ryan Sweeney, Rory Gaffney and Ellis Harrison.
Doncaster had led 1-0 when Joe Wright hobbled off to become the club's latest centre back casualty, joining Andy Butler and Mathieu Baudry in the treatment room.
Rovers had their chances to get back into the game and there was a sense of deja-vu in the second half as referee Darren Bond waved away four appeals for a penalty, much to the annoyance of boss Darren Ferguson who is facing an FA charge for his recent comment about EFL officials.
The defeat ended Doncaster's eight-match unbeaten run in the league. They are without a win in 2018.
Rovers made the perfect start when Marquis expertly converted Matty Blair's right wing cross at the near post to break the deadlock during the opening exchanges.
But their joy was shortlived as Wright went off injured on the 20-minute mark and just moments later, with Rovers' patched up back-line all at sea, the visitors levelled.
Chris Lines' cross from the right was headed back across goal by Liam Sercombe and tapped home into an empty net by Sweeney.
Attack proved to be the best form of defence for Doncaster as they regrouped at the back and ended the half well on top.
Marquis twice went close, Alfie Beestin and Tommy Rowe saw close range shots blocked, while Ben Whiteman struck three attempts over the bar following good build-up play.
The Pirates almost went ahead seconds after the re-start when Rowe had to block Stuart Sinclair's effort following an awful defensive header from Tyler Garratt.
Ian Lawlor then made a good reaction stop to keep out Sinclair's snapshot but the visitors' pressure paid off on 50 minutes. Harrison won a header on the edge of the box and Gaffney had time to control it and poke it past Lawlor.
Rovers again steadied the ship at the back and should have equalised on the hour mark when Rowe laid it across goal from the left but Blair blasted over the bar with the goal at his mercy.
Only a brilliant block from Ryan Sweeney then prevented Marquis scoring from close range after excellent work from Beestin.
Darrell Clarke's side seemed content to protect their lead and took the sting out of Rovers.
The hosts kept plugging away and appealed for penalties on no fewer than four occasions, of which the best shout appeared to be a shove on Blair.
But the game was up on 85 minutes when Harrison, who had just seconds earlier been involved in a coming together with Rowe, charged clear on the counter attack and slammed a low shot past Lawlor.
Rovers: Lawlor, Blair, Wright (Mason 20), Alcock, Garratt, Whiteman, Kongolo (May 75), Rowe, Coppinger (Mandeville 80), Beestin, Marquis. Subs: Marosi, Fielding, Amos, Houghton.
Bristol Rovers: Smith, Partington (Brown 64), Sweeney, Broadbent, Bola, Lines (Menayese 68), Sercombe, Clarke, Sinclair, Gaffney, Harrison (Nichols 90). Subs: Slocombe, Telford, Mensah, Moore.
Referee: Darren Bond
Attendance: 8,021 (693)