The League One side hit the front thanks to John Marquis’ fifth-minute header during an open first half.
They were pegged back by an Andrew Hughes header as the Championship outfit started the second period strongly.
But Tom Anderson scrambled the ball home with 18 minutes to go to put the visitors in control and Rovers sealed their place in the fourth round for the first time in nine seasons when Mallik Wilks slotted home in the 87th minute.
Daniel Johnson fired over the bar after Hughes picked him out on five minutes at Deepdale.
But Rovers were ahead seconds later when Marquis headed home from six yards out after Matty Blair beat his man for pace.
Wilks went close with a ninth-minute effort after a swift counter-attack from the visitors but Ian Lawlor beat away Hughes’ powerful volley a minute later at the other end as the open start continued.
Graham Burke alertly cleared a Marquis header off the line after Rovers won their first corner on 14 minutes.
Burke fired narrowly wide with a snapshot four minutes later, before Wilks also went close at the other end.
Ryan Ledson failed to hit the target after latching on to a Lawlor punch on 27 minutes, before Lawlor then reacted well to clear the danger after a Hughes cross deflected off Ben Whiteman.
Preston came even closer on the stroke of half-time when a powerful Hughes shot smacked back off the post.
Wilks hit the side-netting two minutes after the restart when he rounded the keeper after pouncing on a loose ball.
Lukas Nmecha fired over from 25 yards a minute later, before Wilks blazed over from long range shortly after.
Hughes levelled for North End after 55 minutes, heading home at the back post from Paul Gallagher’s corner.
Darnell Fisher had a shot palmed away by Lawlor before Johnson’s effort was blocked by Andy Butler as Preston increased the pressure.
Rovers substitute James Coppinger curled a shot narrowly wide on 69 minutes, before having a shot saved a minute later.
The pressure paid off when Anderson rifled home from close range after Preston failed to deal with a Butler header on 72 minutes.
Wilks wrapped it up with three minutes left when he took advantage of a defensive miscommunication between Jordan Storey and goalkeeper Michael Crowe.