The home side enjoyed the better of the first half, with Ricardo Fuller dangerous in attack, but the Royals went closest to breaking the deadlock through Royston Drenthe's free-kick, which was saved by Matt Gilks, and Jem Karacan's 18-yard effort that came back off the crossbar.
Gilks then saved at the feet of Adam Le Fondre in the second period but substitute Barkhuizen stole the show with a run and finish on 75 minutes to seal the points for the hosts.
Reading's central midfield pairing of Karacan and Danny Guthrie were struggling against the Tangerines' dominant midfield trio and Paul Ince's side fashioned their best opportunity of the half midway through the opening period.
More top news
A Ukip candidate has been suspended two days before the election, as a video emerged apparently showing him threaten to shoot his Tory rival
Simon Parkin has this morning's weather forecast for the South.
Simon Parkin has the latest weather forecast