Tavernier levelled in the first minute of the second half after Alan Browne had fired Preston into a first-half lead they fully warranted.
The hosts should have been ahead before Browne scored two minutes ahead of the break, and were left to rue their failure to ram home their advantage as Middlesbrough hit back after the interval.
Preston threatened as early as the second minute, but while Louis Moult’s through-ball released Brandon Barker into the area, the midfielder delayed long enough to allow Lewis Wing to block his attempted shot with an excellent covering tackle.
Moult fired a shot straight at Darren Randolph as the hosts continued to dominate, but Boro improved slightly after they were forced to change formation when Rudy Gestede suffered a recurrence of an ankle problem.
Daniel Ayala prodded a shot goalwards from George Saville’s corner, only for Barkhuizen to clear from his position on the post and Boro’s brief revival was halted when Preston claimed the lead.
A slick passing move culminated in Barker teeing up Browne on the edge of the area, and the midfielder drilled a precise low finish into the bottom left-hand corner.
Boro could hardly complain about being behind at the break, but the visitors needed just 55 seconds of the second half to fashion an equaliser.
Storey allowed Dael Fry’s long ball to drop over his head, and Tavernier was on to the loose ball in a flash, cutting infield from the right, the teenager drilled home his second goal in the space of four days.
Tavernier came within inches of scoring a second midway through the second half, glancing Martin Braithwaite’s cross narrowly wide of the post, and with Saville also going close with a second-half header, Preston found themselves on the back foot in the closing stages.
Preston North End: Rudd, Clarke, Storey, Huntington, Earl, Pearson, Gallagher, Barkhuizen, Browne, Barker, Moult (Nmecha 73). Unused substitutes: Fisher, Woods, Hughes, Ledson, Burke, Maxwell.
Middlesbrough: Randolph, Fry, Ayala (Braithwaite 46), Flint, Batth, Friend, Wing (Howson 48), Clayton, Saville, Hugill, Gestede (Tavernier 27). Unused substitutes: Assombalonga, McNair, Fletcher, Lonergan.
Referee: P Bankes (Merseyside).