Gutsy Glenavon came from behind to take the points at Stangmore Park to move level with Dungannon Swifts and a little closer to mathematical protection from relegation.
Trailing 2-1 at the break, two goals in the first 14 minutes of the second half won the game for the Lurgan Blues and they are now one win away from certain safety.
Glenavon first team coach Nigel Law said: "It was a very good second half performance. We were slightly aggrieved to be two goals down, no complaints with the penalty, but I thought the linesman got a decision wrong in the build-up to the second goal.
"We scored at a very good time and just one behind at the break, we re-focused the players and we could have won by a few more."
Swifts manager Darren Murphy, on the other hand, was totally dejected.
"I feel sick after that, I don't know how we lost it," he said.
"The chances that we missed in the first half came back to bite us. We should have been four or five up at the break."
After chances at both ends, Guy Bates for Glenavon and Johnny Montgomery, Matt Hazley and James Costello for Swifts, Swifts took the lead after Eddie McCallion fouled Stefan Lavery inside the box. Cool as you like, Hazley sent Davy O'Hare the wrong way.
Costello hit the post before finding the net midway through the half with a poked finish following a scramble in the Glenavon box.
The lead was halved on 26 minutes when Glenavon were awarded a free kick just short of the 18 yard mark, Marc Brown blasting a low shot into the right corner.
Two minutes into the second half, Glenavon levelled the tie. A corner from Brown on the left found Mark Farren at the backpost and he headed across goal and inside the far post.
The visitors went ahead on 59 minutes when a free from Brown was met by Bates. His header came back off the crossbar and Ciaran Martyn headed home.
Dungannon Swifts: Curran, McKerr, Montgomery, McMinn, Grieve, O'Neill, Fitzpatrick, Hutchinson, Hazley, Costello, S Lavery. Subs: C Lavery for Costello 75, Glackin, PJ Lavery for O'Neill 63, Harpur, Brennan.
Glenavon: O'Hare, Shannon, McCallion, Haughey, Kilmartin, Bates, Farren, Brown, Turkington, Martyn, Gardiner. Subs: Neill for Gardiner 88, Hamilton for Farren 90, Doherty, Hagan, McGrory.
Referee: Tim Marshall (Irvinestown).