Two second half goals from Ian Henderson condemned Doncaster Rovers to their first home defeat under Darren Ferguson.
Rochdale rarely threatened before the interval and seemed content to frustrate Rovers.
But Keith Hill's men were the better side in the second half and won it with two late goals from Henderson.
Substitute Keshi Anderson was stretchered off with a suspected broken leg to add to Rovers' woes.
Rochdale actually started the game brighter but it was Rovers that went closest to breaking the deadlock during a scrappy opening quarter.
Andy Williams just failed to get enough on James Coppinger's cross and when the rebound fell to Cedric Evina his ball back in hit the outside of the post.
As Rovers started to gain more control, Conor Grant tested Joel Castro Pereira's handling with a smart effort from just outside the area, before Williams volleyed Evina's cross agonisingly wide.
The visitors' main threat came on the break and they went close just before half time when Donal McDermott got forward quickly but sent his lob narrowly wide of Thorsten Stuckmann's goal.
At the other end Pereira got down well to keep out Williams' low effort and keep the scoreline blank at the break.
The industrious McDermott struck an effort from distance wide and then saw another attempt deflected wide as Rochdale started the second half in brighter fashion.
Evina was impressing at left wing back for Doncaster and, following a slide-rule pass, made a crucial block to deny Joseph Bunney getting his shot away. Stuckmann also had to be alert to keep out another effort from McDermott.
Rovers had not going at all following half time and they were rocked further when Anderson had to be stretchered off with his leg in a brace.
Coppinger saw a shot blocked as Doncaster attempted to up the ante in the closing stages - but it was from that Rovers attack that Rochdale broke to score the winner.
Callum Camps worked the ball to Henderson and he curled home from inside the area.
Rochdale put the gloss on their win in stoppage time when McDermott broke clear and, after being denied by Stuckmann, squared it for Henderson to tap home from two yards out.
Rovers: Stuckmann, Mattioni (Stewart 87), Alcock, Butler, Taylor-Sinclair, Evina, Middleton, Coppinger, Grant, Williams, Tyson (Anderson 57 (N'Guessan 75)). Subs not used: Marosi, Davies, Whitehouse, Forrester.
Rochdale: Pereira, Cannon, McNulty, Lancashire, Kennedy, Camps (Rose 87), Bennett, McDermott, Vincenti (Andrew 62), Bunney (Mendez-Laing 81), Henderson. Subs not used: Lillis, Eastham, Alessandra, Tanser.