An entertaining first half saw Bradford open the scoring in the the fifth minute. Raffaele De Vita sped down the right and hung an inch-perfect cross up to the back post, where James Hanson had the simple task of nodding past Declan Rudd.
The Preston goalkeeper then fumbled a 20-yard drive from Kyel Reid onto his post before the home side made it 1-1, when Tom Clarke headed home an in-swinging Scott Laird cross, 32 minutes in.
The end-to-end nature of the game continued into the second half. After 68 minutes Bailey Wright rose highest to meet Laird's corner-kick and he put the Lilywhites 2-1 in front.
But their lead was short-lived as Rory McArdle scored the game's fourth headed goal from Gary Jones's dead ball to level for Bradford.
Hanson's 83rd-minute header was then disallowed as the visitors pushed for a winner but Preston held on for a point.