Former England internationals Andy Carroll and Danny Drinkwater claimed their first Reading goals as Veljko Paunovic’s side won a thriller at Swansea City.
Jamie Paterson put Swansea ahead only for Tom Dele-Bashiru to level within a minute.
Carroll scored just his third goal in four seasons before Ryan Manning’s fine finish made it 2-2.
But Reading responded 70 seconds later as Drinkwater swept in the winner.
The Royals became only the second visiting team to win at Swansea this season as Russell Martin’s side lost on their own ground for the first time in eight matches.
It was a second successive away victory for Reading – and a first anywhere against Swansea in 17 attempts.
They stay 21st but move four points clear of the drop zone, while Swansea remain ninth.
An undulating afternoon began in ideal fashion for Swansea, as Reading’s rearguard parted and Korey Smith accepted the invitation to steer a pass through to Paterson.
He rounded goalkeeper Luke Southwood and rolled home his eighth goal of the season, with Andy Yiadom unable to save Reading despite getting a touch on the line.
Yet Swansea had barely finished celebrating when their defence was opened up all too easily, John Swift feeding Dele-Bashiru to cut inside onto his right foot before flashing home from point-blank range.
Joel Piroe threatened for the hosts, pulling one shot narrowly wide before tapping home from Ethan Laird’s cross only for the offside flag to go up.
Reading completed their first-half turnaround when Carroll broke the offside trap to latch on to Drinkwater’s ball over the top.
The former Liverpool striker’s first touch was superb, though Swansea might still have recovered before his shot deflected into the bottom corner off Rhys Williams to give Carroll just his third goal in the last four seasons.
Swansea rallied at the start of the second half, pulling level when Tom Holmes’ clearing header dropped to Manning and he produced a memorable first goal for the club, volleying beyond Southwood with his weaker right foot.
Yet remarkably, Martin’s men conceded almost immediately after scoring for the second time in the match as Reading broke in numbers and the home defence could not cope.
Dele-Bashiru was unfortunate not to get his second as he drove forward and saw his shot cannon back off the post, but Drinkwater was on hand to sweep in his first goal in four years on the rebound.
Swansea took control and very nearly levelled, with Matt Grimes’ drive forcing Southwood into a sprawling save before the Reading keeper denied Olivier Ntcham when he looked certain to score.
Piroe and Kyle Naughton also went close before Reading could celebrate a rousing victory.
Swansea head coach Russell Martin:
“Fair play to Reading, they’ve got some really good players and experience, but we’ve gifted them three goals. It feels like we’ve beaten ourselves. We were nowhere where we need to be in the first 45 minutes and we’ve paid the price for it.
“When you play with a lack of intensity, a lack of energy, a lack of willingness to run a little bit, it can really hurt you. This group’s brilliant. I told them, we love them, we love working with them and we love what they are producing on the pitch.
“But we need to make sure we learn from this and it doesn’t repeat itself because it’s really hurt us. We have wasted a big opportunity to make it a really great week and to really impact the league.
“I can’t sugar-coat it. I thought some of the stuff was great at times but it means nothing when you concede goals.”
Reading manager Veljko Paunovic:
“We gave a statement today that we are never going to give up. We are going to fight.
“A very difficult match against a very good side. Swansea are capable of keeping the ball and creating opportunities in the final third.
“Their consistency made the game more difficult. We are a team who like to have the ball and today the ball was taken away from us, but we were ready for that.
“We had a plan and it worked for us. The attitude was perfect. The team performance brought us this great result at an important moment for us, not only this season but in the club’s history.”
- 2BennettSubstituted forCullenat 82′minutes
- 46R Williams
- 27LairdBooked at 83mins
- 7SmithSubstituted forDownesat 63′minutes
- 7HalilovicSubstituted forAzeezat 66′minutes
- 15DrinkwaterBooked at 74mins
- 10SwiftBooked at 86mins
- 9CarrollSubstituted forPuscasat 81′minutesBooked at 89mins
- 33Cabral Barbosa
- Tony Harrington
Match ends, Swansea City 2, Reading 3.
Second Half ends, Swansea City 2, Reading 3.
Offside, Reading. George Puscas tries a through ball, but Femi Azeez is caught offside.
Jamie Paterson (Swansea City) wins a free kick in the defensive half.
Foul by Tom Dele-Bashiru (Reading).
George Puscas (Reading) is shown the yellow card.
Ryan Manning (Swansea City) wins a free kick in the defensive half.
Foul by George Puscas (Reading).
Attempt saved. Scott Dann (Reading) header from a difficult angle on the left is saved in the bottom left corner. Assisted by John Swift with a cross.
Corner, Reading. Conceded by Flynn Downes.
Foul by Liam Cullen (Swansea City).
Andy Yiadom (Reading) wins a free kick in the defensive half.
Attempt saved. Kyle Naughton (Swansea City) right footed shot from outside the box is saved in the bottom left corner. Assisted by Rhys Williams.
John Swift (Reading) is shown the yellow card for a bad foul.
Ryan Manning (Swansea City) wins a free kick on the left wing.
Foul by John Swift (Reading).
Corner, Swansea City. Conceded by Baba Rahman.
Attempt blocked. Olivier Ntcham (Swansea City) left footed shot from outside the box is blocked. Assisted by Kyle Naughton.
Corner, Reading. Conceded by Ben Hamer.
Attempt saved. John Swift (Reading) right footed shot from outside the box is saved in the top right corner.