In an entertaining encounter, the Swans had led early through Jamie Paterson’s eighth goal of the season, but almost immediately saw Reading level through Tom Dele-Bashiru.
Andy Carroll then put the visitors ahead at the break with a goal that had more than a hint of offside about it.
Swansea hit back through a superb Ryan Manning volley, but gifted the visitors the spoils when an error seconds later ended with Danny Drinkwater slotting home a rebound.
It was frustrating for Russell Martin and his side given they again dominated for long spells, and their two goals were of high quality, but their own errors ended up denying them even a share of the spoils.
The head coach had made three changes from the win at Barnsley as Rhys Williams, Olivier Ntcham and Manning came in for Ben Cabango, Flynn Downes and Jake Bidwell.
The Swans had needed to be patient in waiting for the goals to come at Barnsley but they took a third-minute lead with a lovely move finished by Paterson.
Korey Smith slid the ball through to find the midfielder, and he rounded keeper Luke Southwood before sending away a low shot that Andy Yiadom could not keep out of the net.
But Reading responded just seconds later, John Swift driving forward to feed Dele-Bashiru, who turned inside Ethan Laird and Ryan Bennett to fire past Ben Hamer.
It was proving a lively contest, and Ntcham soon worked Southwood with a firm low drive from around 25 yards after good work by Manning.
Joel Piroe then dragged just wide after showing lovely control to bring down Manning’s flighted pass.
The hosts continued to press, Ntcham having a shot blocked after Laird had knocked another measured Manning ball down to the Frenchman.
Piroe thought he had restored Swansea’s lead in the 23rd minute as lovely play down the right between Bennett, Ntcham and Laird ended with the latter sliding a beautiful pass between the defence and the keeper for the Dutchman to finish from close range.
But the offside flag quickly stymied any Swansea celebrations, and they then fell behind when the flag remained lowered as Carroll ran in behind Williams before firing home left-footed.
The Swans were soon back on the front foot again and enjoyed a sustained spell of pressure, but they remained behind at the interval, with a Matt Grimes free-kick straight at Southwood the last meaningful action of the half.
They were on the front foot again upon the restart and nearly levelled with a lovely goal as Paterson, Ntcham, Laird and Manning linked up, with the Irishman’s final pass to Piroe cut out as he waited to tap in.
However, they did not have to wait long for a leveller as Manning showed superb technique to dispatch a right-footed volley over Southwood and into the far corner of the net for his first Swansea goal.
But, again, the Swans were the own worst enemies as they again conceded within moments of scoring.
Kyle Naughton’s overhit pass led to Dele-Bashiru turning away from Bennett to fire a shot against the post, with Drinkwater slamming home the follow up.
It left Swansea with plenty to do, and Martin sent on Downes for Smith just before a fizzing shot from Grimes was well parried by Southwood in the Reading goal.
Swansea pressed again, Southwood somehow denying Ntcham, with Manning seeing another volley held by the keeper following a scramble.
Paterson then fired straight at Southwood after the keeper had spilled a diagonal under pressure from Manning.
Southwood then saved from Piroe inside the final 15 minutes before another great Manning ball ended with Reading somehow clearing as Piroe and Laird waited to slot home.
But the equaliser just would not come for the Swans - with a low Naughton strike from distance denied by Southwood's fingertips - as they suffered defeat to Reading for the first time since 2008.
Swansea City: Ben Hamer; Ryan Bennett (Liam Cullen 82), Kyle Naughton, Rhys Williams; Ethan Laird, Korey Smith (Flynn Downes 62), Matt Grimes (captain), Ryan Manning; Olivier Ntcham, Jamie Paterson; Joel Piroe.
Unused Substitutes: Steven Benda, Brandon Cooper, Joel Latibeaudiere, Jake Bidwell, Liam Walsh.
Reading: Luke Southwood, Tom Holmes, Alen Halilovic (Femi Azeez 66), Andy Carroll (George Puscas 81), John Swift, Danny Drinkwater, Andy Yiadom (captain), Tom Dele-Bashiru, Baba Rahman, Scott Dann, Josh Laurent.
Unused Substitutes: Rafael Cabral, Dejan Tetek, Mamadi Camara, Tyrell Ashcroft, Kelvin Abrefa.
Referee: Tony Harrington