Millwall 2 Crewe Alexandra 2
With both sides fighting at opposite ends of the League One table, a draw was the last thing either side will have wanted.
It was the visitors who took a shock lead against the run of play. Mark Carrington lofted forward a free-kick from the halfway line which looked like a routine catch for Millwall keeper David Forde.
But the keeper was caught in no man's land and skipper Dennis Lawrence was able to get in front of him and send his looping header over his head and into the back of the Millwall net.
The goal came against the run of play and Millwall continued to pile on the pressure searching for an equaliser which would had come had Tresor Kandol had his shooting boots on.
Kandol should have put Millwall on level terms on 36 minutes when Garry Alexander flicked the ball into his path, but he fired over from four yards.
But Millwall were level just before the break when Marc Laird got two bites of the cherry to score.
Lewis Grabban crossed the ball into a busy penalty area and Laird was unmarked at the far post.
His first shot was blocked by Crewe's Jamie Bailey on the line, but the midfielder made no mistake with his second attempt when he fired home.
Kenny Jackett's side then took the lead on the stroke of half-time when Scott Barron's free-kick was met my Andy Frampton at the far post and his header went straight at keeper Stuart Tomlinson.
However, he had a nightmare and fumbled the ball before it dropped over the line.
But Crewe forced a replay when Shelley fired in a low free-kick from the edge of the area and left Forde unsighted midway through the second half.
Shaun Miller should have won it for Crewe ten minutes from the end when he broke away, but he fired wide when through on goal.