Hearts struggled to build on the advantage created by winger David Templeton's 10th-minute goal.
And, after Francisco Sandaza headed against the bar and Dave MacKay was sent off for two bookable offences, Cillian Sheridan equalised for 10-man Saints after 77 minutes.
The replay has been scheduled for February 14 at McDiarmid Park.
Saints boss Steve Lomas' frustration with referee Craig Thomson was evident throughout, but his side were also fortunate to avoid conceding a penalty when Mackay survived a handball claim early in the second half.
It was a contest which pitted fourth in the SPL against fifth, but one which the Perth side had edged in recent times.
Saints eliminated Hearts from last season's Scottish Cup and had beaten their hosts in two previous SPL encounters this term.
The visitors forced an early corner and Murray Davidson shot at Jamie MacDonald either side of a tame Ian Black shot wide at the other end.
Peter Enckelman saved a Ryan McGowan effort low to his left before he was beaten after 10 minutes.
The ball was pushed forward to Templeton, who accelerated into space before hitting a low right-footed drive into the net.
Jamie Hamill's hesitation in the box almost caused problems for Hearts, his clearance ricocheting off team-mate Marius Zaliukas and into the six-yard box, from where McGowan cleared.
Saints midfielder David Robertson was then booked for bringing down Templeton, who recovered from treatment to blast high over the bar from 25 yards.
McGowan squandered a good crossing opportunity before Saints striker Sandaza swung his left leg at thin air as the ball hit his standing foot from a Robertson cross.
The visitors were continually searching for a route through or around Hearts, who were robust in defence, with Sandaza and Davidson in particular feeling the impact of some tough tackling.
Templeton almost created a second goal after bursting into the box, but Scott Robinson mishit the shot before Davidson was shown a yellow card for dissent, his frustration clear.
Sheridan was introduced at the interval for Robertson, joining Sandaza up front, and had a rapid impact with a cross from the left which Sandaza headed against the bar.
Hearts had a penalty claim turned down when McGowan and Mackay challenged in the air to meet a long Andy Webster free-kick and the ball appeared to strike the Saints defender's arm.
Sandaza was unable to connect with a Lee Croft cross from the right before Mackay was booked for dissent.
Croft soon followed after being blocked by Black as Templeton forged forward.
Black became the first Hearts player to receive a yellow card, for dissent, before Saints were reduced to 10 men.
Mackay's acrobatic attempt to reach the ball caught Templeton and he received a second booking and a red card, leaving Saints a goal and a man down with 17 minutes to play.
Sandaza scuffed another opportunity when through on goal against MacDonald as the visitors spurned the first chance to defy their numerical disadvantage.
But moments later Sheridan beat the offside trap to run onto a Sandaza pass and apply the clinical finish to equalise.
Webster's well-timed tackle denied Sandaza before Templeton caused trouble at the other end, but he could only prod the ball straight at Enckelman.
Substitute Andrew Driver crossed poorly as Hearts finished on the attack but were ultimately held to a draw.