The Bantams took the lead with 19 minutes gone when Aramide Oteh latched onto a flick on from James Vaughan before smashing the ball home.
City's lead lasted for just eight minutes, however, as Josh Laurent finished from a Scott Golbourne header to draw Town level.
In freezing conditions, both sides pressed for a winner but it never came as the contest finished all square.
The replay will take place at Valley Parade next Tuesday, November 19.
The visitors came into the game with nine wins from 16 games in League Two while Shrewsbury sat in 11th place in League One.
Oteh took the opener superbly, flicking the ball over Joe Murphy before placing the ball into the net for his second goal in as many games.
But the Bantams were soon pegged back when Laurent smashed home just before the half hour.
Vaughan almost put the visitors back in front when the ball was dropped by the home goalkeeper but the Bradford captain couldn't force the ball into the empty net.
Dylan Connolly found himself through on goal 10 minutes into the second half but was unable to find the finish.
Bradford were then denied by the woodwork as the game reached the final quarter.
Connor Wood's looping cross was met by the head of Ben Richards-Everton but the ball bounced out off the post.
City went in search of a winner but had to settle for a draw as the sides will play at least another 90 minutes at the Utilita Energy Stadium on November 19.