Oli McBurnie scored a last-gasp equaliser to earn the Swans a share of the spoils in a six-goal thriller against 10-man Birmingham City at the Liberty.
The Swans, who lost captain Leroy Fer through injury after 16 minutes, were on the brink of defeat as the game ticked deep into injury time, with Garry Monk looking set to make a winning return to his former club.
But up popped McBurnie to score his second of the night as he directed Mike van der Hoorn’s header past Lee Camp with seconds remaining.
McBurnie had set up Daniel James for the opening goal after 22 minutes, but the Blues levelled through Jacques Maghoma.
The visitors were down to 10 men before the break, but it didn’t stop them from pushing forward.
Just three minutes after Morrison’s equaliser, Che Adams curled in a stunning strike from 20 yards which left Erwin Mulder stranded.
But the drama didn’t end there, with the Liberty erupting as McBurnie tucked home his 15th goal of the season.
The result left the Swans five points adrift of the play-offs, with 41 points from 29 games.
Fer made his 100th appearance for the Swans as Graham Potter made three changes to his starting line-up.
The club captain reached a ton of outings for the Swans having made his bow while on loan from QPR in February of 2016.
He was one of eight players retained from the weekend victory over Gillingham in the FA Cup.
The alterations saw Nathan Dyer and James come in for Barrie McKay and Courtney Baker-Richardson, as in-form McBurnie started up front.
In defence, Kyle Naughton was fit after a knee injury as he came in for Declan John, with Connor Roberts moving over to left-back.
The Swans had started brightly with Fer seeing his backheel from close range kept out by Lee Camp, while McBurnie went close after he cut inside and drove his effort high and wide.
McBurnie then linked up with James to set up the opener after 27 minutes. James latched onto the return pass and blasted his effort which deceived Camp.
The Blues weren’t rattled by that setback though, and Maghoma should have done better from 15 yards when he was teed up by Craig Gardner, only for the midfielder to sky his effort.
But he would do better in the 36th minute as he found himself in space before rifling a low effort past Mulder from inside the box.
The momentum swung back in the Swans’ favour on the stroke of half-time as Kristian Pedersen received his marching orders after being shown a second yellow card following a lunge on McBurnie.
The game continued to flow, and Matt Grimes saw his top-corner bound free-kick kept out by a stunning save by Camp.
After the break the chances continued to follow for both teams.
Jay Fulton - who had replaced Fer - was denied by Camp when he touched on a Grimes free-kick, before the Swans got themselves in front again.
Sub Jefferson Montero did well to beat his marker and find McBurnie with his cross, and the Scottish striker perfectly headed into the far corner.
The lead didn’t last long though, and Birmingham, to their credit, were not fazed by the setback.
The goal was a disappointing one to concede for the hosts as Morrison headed a deep delivery and Mulder could only get a hand to it before it bounced into the net via a deflection off Grimes.
Stunned by the equaliser, the Swans were dealt another blow three minutes later.
The lively Adams was given time and space, and he curled home a stunning drive which caught Mulder off guard.
The Swans were left to find a way through the sea of Birmingham bodies to carve out an equaliser, and it almost came in the dying minutes as James’ low cross found the onrushing Fulton, but he sidefooted wide.
But the gasps turned to cheers in stoppage time as Van der Hoorn got onto the end of Montero’s cross and McBurnie did the rest.
Swansea City: Erwin Mulder; Kyle Naughton, Mike van der Hoorn, Cameron Carter-Vickers, Connor Roberts (Barrie McKay, 71); Leroy Fer (captain, Jay Fulton, 16), Matt Grimes; Nathan Dyer (Jefferson Montero, 56), Bersant Celina, Daniel James; Oli McBurnie.
Subs: Kristoffer Nordfeldt, Declan John, Cian Harries, George Byers.
Birmingham City: Lee Camp, Maxime Colin, Harlee Dean, Michael Morrison, Kristian Pedersen; Jota, Maikel Kieftenbeld, Craig Gardner (Wes Harding, ht), Jacques Maghoma (Gary Gardner, 84); Che Adams, Lukas Jutkiewicz (Isaac Vassell, 66).
Subs: Connal Trueman, Kerim Mrabti, Josh Dacres-Cogley, Connor Mahoney.