Swansea winger Wayne Routledge scored the winner against Sheffield Wednesday
Bersant Celina came off the bench to score one goal and create another as Swansea City fought back in dramatic fashion to beat Sheffield Wednesday.
Swansea trailed after substitute Marco Matias seized on sloppy defending.
But five minutes after his introduction, Celina equalised with a neat, first-time effort.
And just a minute later, Celina lofted a delightful pass to Wayne Routledge, who scampered clear to finish between goalkeeper Cameron Dawson's legs.
The goal capped a thrilling few minutes and gave Swansea a second successive win to lift them to ninth in the Championship table, four points adrift of the play-off places.
Wednesday, however, slip down to 18th and a seventh defeat from 10 matches will increase the pressure on their manager Jos Luhukay.
- Saturday's EFL action as it happened
Their frustration was clear after watching their side come close to snatching an improbable victory, though Swansea were worthy winners.
Graham Potter's side controlled the encounter, defying torrential rain and howling winds to create several chances.
Their intricate passing created two particularly promising early openings for Routledge, but the winger pulled one effort wide and tamely rolled another straight at Dawson.
Wednesday were starved of possession for long periods but, on the rare occasions they had it, they looked short of confidence.
They at least offered a fleeting threat - Lucas Joao dragging a low shot wide - but they spent much of the game defending.
Wednesday were organised and disciplined in that respect - unlike Swansea, with a mix-up among their defenders allowing Matias to put the visitors ahead with a powerful strike.
That came against the run of play and sparked joyous celebrations in the away end, but that soon turned to despair once again as Celina came on to turn the game on its head with his inspired late appearance.
Swansea City manager Graham Potter said:
"It's fantastic for the players and the supporters. It was a pretty awful afternoon in terms of weather. The support was great for us. They stuck with us and helped us.
"Overall, in that type of afternoon there's going to be a couple of mistakes. Maybe there was a little bit of that in the first goal and it got nervy for a few minutes but I thought overall we deserved the victory.
"It was great for Bersant [Celina] to come on and score and turn the game around for us. As a team, it shows there's a mentality to recover from setbacks, recover from mistakes.
"In the end, I'm really proud of the players' effort, togetherness and character, and also really proud of the supporters because it was an awful day but they were fantastic."
Sheffield Wednesday manager Jos Luhukay said:
"It's very hard to take, it is totally frustrating to give away a 1-0 lead in a couple of minutes.
"We didn't defend down our left side twice and that is not acceptable, you have to run with your opponent, I have tried to coach this three or four times but it is not going in their heads.
"I am so angry because the players are showing no proof of what we are doing. It is not the first time we give a 1-0 lead away for the opponents to score two goals.
"My words won't come out properly because I am so angry with what happened. Maybe the players can give the answers."
Asked about his future and fans calling for him to be sacked, Luhukay said: "I have answered the question on my future 20 times in recent weeks and I'm still here."
5van der HoornSubstituted forCarter-Vickersat 45'minutes
26NaughtonSubstituted forCelinaat 65'minutes
12DyerSubstituted forMonteroat 63'minutes
12ThornileyBooked at 12mins
24BakerBooked at 33mins
7OnomahSubstituted forMatiasat 45'minutes
6FoxSubstituted forFletcherat 79'minutes
Home TeamSwanseaAway TeamSheff Wed
Shots on Target
Match ends, Swansea City 2, Sheffield Wednesday 1.Full TimePosted at 90'+5'
Second Half ends, Swansea City 2, Sheffield Wednesday 1.
Posted at 90'+3'
Corner, Sheffield Wednesday. Conceded by Leroy Fer.Posted at 90'+3'
Corner, Sheffield Wednesday. Conceded by Matt Grimes.Posted at 90'+3'
Attempt missed. Steven Fletcher (Sheffield Wednesday) header from the centre of the box misses to the right. Assisted by Joey Pelupessy with a cross following a corner.Posted at 90'+3'
Corner, Sheffield Wednesday. Conceded by Erwin Mulder.Posted at 89'
Corner, Swansea City. Conceded by Ashley Baker.Posted at 88'
Foul by Leroy Fer (Swansea City).Posted at 88'
Adam Reach (Sheffield Wednesday) wins a free kick in the attacking half.Posted at 86'
Joe Rodon (Swansea City) wins a free kick in the defensive half.Posted at 86'
Foul by Atdhe Nuhiu (Sheffield Wednesday).Posted at 85'
Attempt blocked. Jordan Thorniley (Sheffield Wednesday) header from the centre of the box is blocked. Assisted by Joey Pelupessy with a cross.Posted at 84'
Corner, Sheffield Wednesday. Conceded by Joe Rodon.Posted at 84'
Attempt blocked. Lucas João (Sheffield Wednesday) right footed shot from the right side of the box is blocked. Assisted by Joey Pelupessy.Posted at 84'
Attempt blocked. Joe Rodon (Swansea City) header from very close range is blocked.Posted at 84'
Oliver McBurnie (Swansea City) hits the bar with a header from the centre of the box. Assisted by Barrie McKay with a cross following a corner.Posted at 83'
Corner, Swansea City. Conceded by Ashley Baker.Posted at 80'
Attempt blocked. Jefferson Montero (Swansea City) right footed shot from the left side of the box is blocked. Assisted by Oliver McBurnie.SubstitutionPosted at 79'
Substitution, Sheffield Wednesday. Steven Fletcher replaces Morgan Fox.Posted at 78'
Delay over. They are ready to continue.Posted at 76'
Delay in match Barrie McKay (Swansea City) because of an injury.Posted at 76'
Oliver McBurnie (Swansea City) wins a free kick in the attacking half.Posted at 76'
Foul by Daniel Pudil (Sheffield Wednesday).
Goal!Posted at 72'
Goal! Swansea City 2, Sheffield Wednesday 1. Wayne Routledge (Swansea City) right footed shot from a difficult angle on the right to the bottom right corner. Assisted by Bersant Celina with a through ball.
Goal!Posted at 71'
Goal! Swansea City 1, Sheffield Wednesday 1. Bersant Celina (Swansea City) right footed shot from the centre of the box to the bottom left corner. Assisted by Connor Roberts.Posted at 70'
Offside, Sheffield Wednesday. Atdhe Nuhiu tries a through ball, but Ashley Baker is caught offside.Posted at 69'
Foul by Leroy Fer (Swansea City).Posted at 69'
Atdhe Nuhiu (Sheffield Wednesday) wins a free kick in the attacking half.Posted at 68'
Offside, Sheffield Wednesday. Tom Lees tries a through ball, but Marco Matias is caught offside.Posted at 66'
Corner, Sheffield Wednesday. Conceded by Bersant Celina.SubstitutionPosted at 65'
Substitution, Swansea City. Bersant Celina replaces Kyle Naughton.
Goal!Posted at 63'
Goal! Swansea City 0, Sheffield Wednesday 1. Marco Matias (Sheffield Wednesday) right footed shot from the centre of the box to the bottom right corner.SubstitutionPosted at 63'
Substitution, Swansea City. Jefferson Montero replaces Nathan Dyer.Posted at 62'
Offside, Swansea City. Kyle Naughton tries a through ball, but Wayne Routledge is caught offside.Posted at 59'
Attempt missed. Lucas João (Sheffield Wednesday) left footed shot from the centre of the box is close, but misses to the left.Posted at 59'
Attempt blocked. Lucas João (Sheffield Wednesday) right footed shot from the centre of the box is blocked. Assisted by Joey Pelupessy.Posted at 58'
Foul by Matt Grimes (Swansea City).Posted at 58'
Lucas João (Sheffield Wednesday) wins a free kick in the attacking half.Posted at 58'
Attempt saved. Matt Grimes (Swansea City) left footed shot from outside the box is saved in the top left corner. Assisted by Connor Roberts.Posted at 57'
Corner, Swansea City. Conceded by Marco Matias.
Show more updates