Defender Haydon Roberts gave Reading a 32nd-minute lead on his debut before David McGoldrick and Adam Phillips struck for Barnsley.