Charlie Austin scored an injury-time equaliser as QPR came back from two down to maintain their unbeaten start to the season.
The Tykes totally dominated a first half in which Dominik Frieser and Cauley Woodrow scored to put them in control of the game.
A fine goal by Ilias Chair with 14 minutes remaining gave Rangers hope, before Yoann Barbet raced onto Chair’s pass and pulled the ball back for Austin to haul Rangers level.
The hosts’ defence was ripped open for both Barnsley goals, with the first coming on 14 minutes after Frieser latched onto Liam Kitching’s ball down the left-hand channel.
Osman Kakay, standing on the opposite side of the pitch, played Frieser onside and the Austrian midfielder strolled through and fired past keeper Seny Dieng.
Striker Woodrow finished off a clever Barnsley move to double the visitors’ lead on 27 minutes.
Callum Styles exchanged passes with Josh Benson on the right and laid the ball across for Woodrow to net from close range.
The home side continued to struggle badly and Woodrow would have scored again following another neat Barnsley move but for Dieng’s near-post save.
QPR were so poor that manager Mark Warburton did not wait until half-time to change things.
Warburton made a double substitution 10 minutes before the interval, sending Albert Adomah and Dom Ball on for George Thomas and Andre Dozzell.
Thomas was deployed as a makeshift right wing-back in the absence of the suspended Moses Odubajo, with Kakay – usually a right-back – moved to the left because Lee Wallace and Sam McCallum were both sidelined.
Midfielder Dozzell, meanwhile, was making his first league start since a summer move from Ipswich.
Warburton was forced into another change at half-time, when centre-back Jimmy Dunne replaced the injury-prone Jordy de Wijs.
Dunne missed a chance to pull a goal back shortly before the hour-mark when he headed wide from Stefan Johansen’s right-wing corner.
Rangers at last began to impose themselves and Austin fired over and sliced another effort wide after being picked out by Chair.
Austin was also denied by a fine save from Barnsley keeper Brad Collins, who did well to push away the striker’s header from Johansen’s free-kick.
Chair eventually reduced the deficit after Chris Willock won the ball and galloped towards the Barnsley penalty area before feeding the Morocco international.
Chair had plenty of work to do and did it splendily, twisting and turning away from Toby Sibbick before lifting the ball over Collins from a tight angle.
And Austin’s first goal of the season dramatically rescued a point for the R’s.
QPR: Dieng; Dickie, De Wijs (Dunne 45), Barbet; Thomas (Adomah 35), Johansen, Dozzell (Ball 35), Kakay; Willock, Chair; Austin.
Subs not used: Archer, Duke-McKenna, Kelman.