Reading returned to Championship action after three months out, but were denied the perfect start after Stoke scored a 91st minute equaliser to cancel out Lucas Joao’s opener.
Joao scored the first goal of the game with just even minutes gone before he was forced off with a hamstring injury.
Swift came closest to adding to the scoreline for Reading but was denied by the crossbar, while Tyrese Campbell struck the post for the visitors in the second half.
With the points looking like they would be Reading’s, Stoke made sure that they would leave with a share of the points after Nick Powell finished from close range from a corner.
With football back underway in Reading for the first time in three months, both sides showed their appreciation to the NHS with a minute’s applause.
Both sides then opted to take a knee in support of the Black Lives Matter movement before kick-off.
Stoke started with most of the ball, but it was Reading who created the first chance of the match when Jordan Obita’s cross from the left was met by Lucas Joao. But he failed to make proper contact with the ball which fell into the grateful arms of Jack Butland.
But just two minutes later, with seven minutes on the clock, Joao made Stoke pay with his next sight of goal. Yakou Meite raced down the right wing and delivered a low cross for Lucas Joao who neatly tucked the ball past Butland into the bottom left corner to open the scoring.
The Potters forged their first clear cut chance of the game when a floated cross was missed by Royals skipper Liam Moore which allowed Tom Ince a shot at goal, but he didn’t connect properly with his effort flying straight down the throat of Rafael in the Reading goal.
Joao continued to impress and cause problems to the Stoke defence throughout the half and had two clear cut chances within minutes of each other.
Chris Gunter tried to find the Portuguese forward with a inswinging cross towards the back post which just evaded Joao despite his best efforts.
Then moments later, Michael Olise clipped in a brilliant ball towards Joao who came inches away from making contact as he lunged towards the ball but couldn’t find the finishing touch for his second of the game.
Joao then had an appeal for a penalty when he powerfully charged into the Stoke box and went down under a challenge as a Potters defender looked to have clipped his heel, but the referee waved play on.
But with 34 minutes gone, the Royals were dealt a big blow as Lucas Joao had to come off with a hamstring injury. He was replaced by George Puscas.
Joao’s goal gave the Royals a narrow lead heading into half-time.
The Royals started the second half strongly and had another penalty appeal when Michael Morrison looked to have been shoved in the box, but the referee waved the Reading appeals away.
Stoke almost found a leveller had it not been for Moore who positioned himself brilliantly to block a cross which looked destined to find a Stoke player for an easy tap in.
John Swift came agonisingly close to doubling Reading’s lead on the hour mark. Having won a soft free kick on the edge of the box, Swift beat the wall beat Butland, but was denied by the crossbar.
Reading continued to attack and should have taken advantage of a counter attack with plenty forward, but Meite was too late to release the ball and was caught in possession.
Tyrese Campbell came inches away from levelling the score when his effort looked to have beaten Rafael, but cannoned back off the post.
Andy Rinomhota replaced Olise in Mark Bowen’s second change of the match.
Charlie Adam and Garath McCleary replaced Meite and Ovie Ejaria late in the game.
But the Royals were denied a win in the 91st minute as Nick Powell prodded home from close range following a Stoke corner.
The Royals travel away to Derby County next Saturday. before they host promotion chasing Brentford the following Tuesday at the Madejski Stadium.
Reading: Rafael, Gunter, Morrison, Moore (c), Obita, Richards, Swift, Olise, Ejaria, Joao, Meite.
Subs: Walker, Rinomhota, Baldock, McCleary, Blackett, Masika, Adam, Osho, Puscas.
Stoke City: Butland, Collins, Shawcross (c), Chester, Martins Indi, Sorensen, Thompson, Ince, Powell, Clucas, Campbell.
Subs: Davies, Ward, Smith, Vokes, Batth, McClean, Gregory, Oakley-Boothe, Tymon
Goals: Joao 7′, Powell 90+1′