Joe Garner had looked to have rescued a point for the hosts five minutes from time, finding the net to cancel out Rory McArdle’s first-half goal.
However within just a minute the Bantams were back in front as Yeates curled home past Jamie Jones.
The visitors took the lead in the 26th minute after McArdle nodded in Andy Halliday’s corner.
North End nearly equalised three minutes later when Paul Gallagher’s low free-kick was deflected wide.
Garner’s 51st-minute header was cleared off the line by some last-ditch defending with Jordan Pickford parrying Chris Humphrey’s follow-up.
Callum Robinson received Gallagher’s 63rd-minute cutback but placed his effort wide while Jon Stead found himself one-on-one with Jones but the Preston stopper saved.
But Garner equalised after receiving Robinson’s 85th-minute cutback before Yeates quickly replied, while there was still time for Bantams stopper Pickford to deny Jack King a stoppage-time equaliser.