An extra-time winner by Leroy Lita sent ten-man Reading into the third round of the Carling Cup.
The England Under-21s striker, making his first start of the season, pounced on 105 minutes with a neat close-range finish to give Steve Coppell's men an unlikely victory in Swansea.
In an even contest, defender Sam Sodje saw red for the Royals on 58 minutes after a late foul on Swansea striker Guillem Bussy.
Both managers elected to deploy a squad rotation policy with Coppell making eight changes from the 3-0 defeat away to Bolton Wanderers on Saturday, while opposite number Roberto Martinez opted to name just six of the side who beat Walsall.
And it was the League One side who made all the early running. On four minutes, Andy Robinson's raking crossfield ball found Ian Craney on the right, who cut inside his marker before firing a tame shot at stand-in Reading goalkeeper Adam Federici.
But the Premiership outfit rallied and midway through the half, Lita should have done better when he headed John Hall's right-wing cross into the arms of Dorus de Vries.
The tie burst into life as Swansea youngster Joe Allen showed quick feet to beat two Reading challenges before dragging his shot wide.
But the visitors hit back and had the best chance of the opening period when Dave Kitson's clever pull-back found the on-rushing James Harper who fired straight at de Vries from 16 yards.
The Royals increased the pressure just a minute later, when referee Kevin Friend waved away Lita's claims for a penalty after he tumbled following a rash challenge by Dennis Lawrence.
Reading upped the tempo after the interval and Kalifa Cisse's header was cleared off the line by Craney before Sodje's dismissal.
The visitors defended valiantly to ensure the win as the hosts tired, although Swansea's Angel Rangel crashed the woodwork with time running out.