Reid, whose City contract expires at the end of this month, will officially move to Deepdale on 1 July.
The 26 year-old made 110 appearances for City in total after joining the club in August 2011, becoming Bantams boss Phil Parkinson's first signing in the process.
The flying left-winger featured heavily in his first season with the club - the 2011/2012 campaign - as Parkinson successfully maintained City's place in League 2.
Reid was just as effective during his second season with the club, although a serious groin injury did sideline the winger midway through the campaign, leading him to miss most of the club's memorable Capital One Cup adventure.
Reid did make it back in time for City's Capital One Cup two-legged semi with Premiership side Aston Villa but he was an unused sub in both ties.
He was also an unused sub for the final against Swansea City at Wembley Stadium.
The jet-heeled performer did get his big day out at the national stadium later that season, however, when he helped City to victory in the League 2 Play-Off Final against Northampton Town.
With City now in League 1, Reid had to fight for his place on the left of the Bantams midfield with summer recruit Mark Yeates.
Reid certainly helped his cause for a regular starting berth though by scoring an absolute screamer at Walsall in early October - a goal which would later be named as the club's goal of the season.
Unfortunately for Reid, however, the winger's campaign last season finished as early as January when he tore his ACL during City's Yorkshire derby at Sheffield United.
Upon joining Preston, Reid said: "Obviously I’ve been at Bradford a long time and I’ve got some good memories and great times I have had there.
“I would just like to thank everyone at Bradford, the club, the manager, the staff and everyone that looked after me and made me welcome for the three season that I was there.
"The Bradford fans have been great to me as well, and I've had three memorable years there. I am truly grateful to have been involved with Bradford City during this period and I wish all the fans, players and staff all the very best for the new season."
In other transfer news, former City defender Matthew Bates has joined Sky Bet League 2 side Hartlepool United.
Bates moves to Hartlepool after playing 23 times for the Bantams during last season.