Nine-man Rovers scored three before conceding three in a dramatic FA Cup second round tie against Crewe at Ewood Park.
A Dominic Samuel brace either side of Danny Graham's goal put Rovers in complete command after just 20 minutes.
But Rekeem Harper saw red following a foul in the box - a penalty which Crewe duly converted.
Elliott Bennett was then sent for an early bath 10 minutes after the break following an off-the-ball incident, before Eddie Nolan and Chris Porter scored almost identical headers just three minutes apart to complete the Crewe comeback.
But Rovers held out for the final 30 minutes to force a replay at Gresty Road on Tuesday week.
Ahead of the game, Jayson Leutwiler, Paul Caddis, Elliott Ward, Scott Wharton, Corry Evans, Harper and Samuel were all handed starts by manager Tony Mowbray, who made seven changes to the side that defeated Blackpool in midweek.
David Raya, Derrick Williams, Charlie Mulgrew and Peter Whittingham were all rested and not named in the matchday squad.
A fast start from Rovers forced a succession of corners in the opening couple of minutes and the returning Evans nearly put Rovers ahead in stunning style, but his left-footed volley from a pin-point Bennett corner was blocked excellently by defender Perry Ng on the line.
Moments later and Rovers were in again, but Graham scooped over the bar after another lovely Bennett pass.
Just four minutes later and Rovers took the lead when Samuel produced a couple of step overs, gained a yard in the box and rifled through the legs of Dave Richards from an acute angle.
It was all Rovers and Evans again had a chance, but curled wide from 25 yards out.
But Rovers did get that second goal their play deserved on the quarter-hour mark and Samuel was involved again, sliding the ball through to strike partner Graham, who tucked home with a lovely left-foot finish to round off a wonderful team move.
The favour was returned just five minutes later as Graham found Samuel with a beautiful pass and the latter shook off his man, went one-on-one with Richards and tucked the ball confidently into the bottom corner.
But just when things were going smoothly for Rovers, Harper lost the ball to Porter and hauled the frontman down in the box.
The West Brom loanee was sent off and Porter dusted himself down to send Leutwiler the wrong way to pull a goal back just after the half-hour mark.
Crewe's tails were up and Ng forced Leutwiler into a smart save and Evans saw another strike hacked clear as the half-time whistle approached.
There was still time for Dagnall to test Leutwiler, who produced a smart save just a moment before the break.
Mowbray made two changes at half-time, with Paul Downing and Richie Smallwood replacing Ward and Graham, whilst Crewe's David Artell replaced the booked Brad Walker for former Rovers man Nolan.
It was Crewe who came out of the traps quickest and Callum Ainley was unlucky to see his looping effort clip Leutwiler's crossbar before going out for a goal kick.
Rovers were then reduced to nine men on 55 minutes when captain Bennett was shown a straight red card for an off-the-ball incident involving Ng.
That sparked Mowbray into a final change with Lewis Travis coming on for Marcus Antonsson just a minute later.
Crewe were piling on the pressure and after George Cooper saw his strike deflect wide, the same player took the resulting corner and Nolan headed home.
And, just a couple of minutes later, a carbon copy of Crewe's second goal saw Cooper's corner nodded down and past Leutwiler by Porter to level things up with 25 minutes to go.
Tommy Lowery then curled wide as the Railwaymen looked to grab the lead at Ewood Park. Crewe were smelling blood and Downing produced a superb block to deny Dagnall with 20 minutes to go.
Rovers finally made forays forward and Smallwood worked an opportunity, but his ball across the six-yard box was cleared by the visitors.
Dagnall then saw his powerful drive beaten away by Leutwiler, as the pressure on the Canadian's goal was cranked up a notch with 15 minutes remaining.
Rovers appeared to ride out the storm, but Leutwiler had to be alert again with three minutes remaining to hold Cooper's effort from the edge of the box.
But Rovers defended well and showed great character to ensure they are in the hat for Monday evening's third round draw.
ROVERS: Leutwiler, Nyambe, Ward (Downing 46), Wharton, Caddis, Harper, Evans, Bennett (c), Antonsson (Travis 57), Graham (Smallwood 46), Samuel.
Subs not used: Fisher, Hart, Dack, Nuttall.
Goals: Samuel (11, 20), Graham (15)
Sent off: Harper, Bennett.
CREWE: Richards, Ng, Walker (Nolan 46), Porter, Dagnall (c), Bowery, Cooper, Ainley (Reilly 87), Lowery, Pickering, Stubbs.
Subs not used: Garratt, Bakayoko, Lundstrum, Grant, Offord.
Goals: Porter (35 pen, 66), Nolan (63)
Booked: Walker, Ng.
Attendance: 4,472 (773 away)