The Royals went 1-0 up against the run of play in the 31st minute when goalkeeper Michel Vorm allowed Pavel Pogrebnyak's shot to slip beneath him and in. They then doubled their advantage a minute before the break as Noel Hunt beat Vorm with a tidy volley.
But Swansea continued to dominate play in the second half and after Miguel Michu converted a 71st-minute header, Wayne Routledge's fierce strike drew the contest level in the 78th minute.
Reading keeper Alex McCarthy twice sent efforts onto the post among a string of excellent saves and Swansea had a strong-looking penalty claim for handball dismissed towards the end, though their captain Ashley Williams then cleared Jem Karacan's header off the line.
The Swans made a bright start as new Wales captain Ashley Williams nodded off target three times while Danny Graham saw a header turned over by McCarthy, who also saved from Routledge. Routledge had another effort blocked by Adrian Mariappa, with replays suggesting a suspicion of handball.
Reading had shown little going forward but snatched the lead as Pogrebnyak hit Jobi McAnuff's through-ball straight at keeper Michel Vorm and the ball slipped through the Dutchman and in.
Ki Sung-yueng drilled into the arms of McCarthy from distance but in the 44th minute McAnuff's shot looped off Angel Rangel and Hunt lashed superbly past Vorm.
Swansea replaced Graham at half-time with Luke Moore, who was straight into the action. First, he found himself through but was denied by McCarthy's foot and the goalkeeper then pushed a header against the post.
McCarthy tipped Ki's deflected low shot onto his other upright, then saved Williams' downward header. He was finally beaten with 19 minutes to go as Michu dived to convert a deflected Routledge cross.
McCarthy denied Moore again but after Ki seized possession, a forward break was rounded off by Routledge's firm finish. The late drama continued as Williams nodded away Karacan's goalbound header.