Connor O’Riordan grabbed a stoppage-time winner as Crewe edged Doncaster 3-2 in an end-to-end contest.
Joe Ironside’s second-half header appeared to have earned Grant McCann’s side a share of the spoils at Gresty Road before O’Riordan grabbed his second of the game as the high-flying Railwaymen made it five wins from their last six outings.
James Maxwell headed over a great early chance for Rovers from a Zain Westbrooke ball across the box.
Mo Faal caused Crewe problems with his direct running and it was the big striker who handed Rovers a 16th-minute lead. A neat passing move ended with Ironside playing the ball to Faal who blasted past Harvey Davies.
Rovers keeper then Louis Jones preserved the lead by pushing away Aaron Rowe’s angled drive.
But Jones was unable to keep out Luke Offord’s 29th-minute leveller with the Crewe skipper sent clear inside the box from Rowe’s pass and then hitting a fierce effort through the keeper’s hands.
Shilow Tracey’s rising drive from 20-yard was kept out by Jones, and Mickey Demetriou headed a set-piece just wide as Crewe started to threaten.
And the hosts were ahead just before the break (44) when O’Riordan made the most of a ricochet off a Doncaster defender from Demetriou’s long throw and drove the ball in from a tight angle.
Ironside levelled after the break (57), with the frontman’s glancing header finding the top corner after Maxwell hit a cross over from the left flank.
Ben Close narrowly missed the bottom corner with a volley, but a last-ditch touch diverted Courtney Baker-Richardson’s effort for Crewe around the post in the closing minutes before O’Riordan fired in from close range (90+2) after Rio Adebisi hit a cross to the near post.