A battling Barnsley side were eventually broken down by two second half goals that secured Veljko Paunovic's men another three points and a home win at the Madejski.
Three minutes in and Swift thought he was in behind the Barnsley back line but the linesman's flag was raised against the Royals midfielder followign good work from Lucas Joao and an early ball from Michael Olise.
But Rafael had to be at full stretch to palm away a Dominik Frieser header a few minutes later, leaping to his right to deny the Tykes forward with a fine save.
Barnsley were pressing Reading high and carved out half a chance for Luke Thomas after a quarter of an hour, the ball being teed up for Thomas to half-volley wide of the bottom right corner.
Mads Andersen got away with a yellow card after he got to the ball second to Mciahel Olise and clipped the Royals midfielder's toes as he tumbled to the ground instead of bursting through towards goal.
A deep corner threatened to cause the Royals trouble but the ball pinballed between bodies and bobbled wide of Rafael's left post. Anc Conor Chaplin delivered a very good cross from the left soon after but there was no Barnsley body in the middle to apply a finish.
An aerial ball forward from Liam Moore found Swift onside this time and the ball held up in the wind a little to allow him to challenge the goalkeeper for it in the air - but Jack Walton punched it clear and won a free kick as he clattered into Swift.
The visitors were continuing to ask questions of the Reading defence and a wonderful block from Rinomhota denied them a great chance to score as the ball dropped to a yellow-socked boot from a Rafael save.
But that block set up a key moment for the hosts. Swift played the ball forward early and Joao got past his man and bore down on the ball 25 yards out and with only the keeper in his way to goal. Michal Helik tugged the striker's arm back and brought Joao to ground - the referee blew his whistle and reduced the Tykes to ten men.
Half-time: Reading 0-0 Barnsley
Despite being a man down, a very organised Barnsley side continued to press and harry their hosts after the break, making it hard for Reading to earn any sort of sight of goal.
Just after the hour mark, substitute Yakou Meite forced Walton into a good save, connecting with a Swift cross to place a downward header towards the bottom right corner - only for the Barnsley keeper to claw it behind for a corner.
That corner was delivered deep by Olise and failing to clear the danger, Moore's left-footed hook was charged down. The ball flew loose and Meite was there to nod it home from close range to make his first appearance of the season with a very important goal.
With their tails up, the Royals looked for a second and as a Joao throughball was slid through towards Meite, Andersen slid in to try to intercept it, but did so with his hand. Already with a booking to his name, the referee produced a second yellow and Barnsley were down to nine men.
Swift dinked the set piece into the Barnsley box and an offside Joao tried an audacious overhead kick that flew inches over the crossbar.
And it was an arguably even more audacious effort that brought Reading's second goal of the afternoon. A corner from the left was headed clear but Olise volleyed it first time from 25 yards out and the ball fizzed past a helpless Walton for 2-0.
George Puscas came off the bench to force Walton into a sharp double save with five minutes of the ninety remaining, the Barnsley stopper parrying his drilled right-footed effort and than clinging on to his follow-up shot to prevent a third.
Mowatt rose high to get a head to a late outswinging corner, but it was straight at Rafael who made no mistake in catching it cleanly on his goalline.
But Aluko made progress down the left in the final minute, flashing a low cross across the six yard box but no-one was there to turn it in. And Ejaria twisted and turned his way into a shooting position in injury time - only for his low strike to be push wide by a sprawling Walton.
Full-time: Reading 2-0 Barnsley
Reading: Rafael, Araruna, Richards, Moore, Morrison, Rinomhota, Laurent (Meite 59), Swift (Aluko 83), Olise, Ejaria, Joao (Puscas 81).
Unused subs: Southwood, McIntyre, Baldock, Holmes.
Goals: Meite (67), Olise (76)
Barnsley: Walton, Williams, Andersen, Chaplin (Halme 70), Ludewig, Thomas (Styles HT), Sollbauer, Mowatt, Frieser (Schmidt 62), Helik.
Unused subs: Collins, Woodrow, Miller, Adeboyejo.
Yellow: Andersen, Ritzmaier, Mowatt.
Red: Helik, Andersen.