Ballinamallard United moved four points clear of bottom club Warrenpoint Town with a 2-0 win at Ferney Park in a game which saw both sides end with 10 men.
Stephen Hughes was sent-off in the first half and Ivan Sproule in the second but goals from Shane McCabe and Ryan Campbell gave the hosts victory.
David Cushley and Michael Ruddy scored as Ballymena United ensured Premiership safety by beating Carrick Rangers 2-0.
Andrew Mitchell was on target twice in Dungannon's 2-1 triumph over Portadown.
The Ports had halted a run of five successive defeats by drawing 0-0 with Ballinamallard last week but the Swifts' success at Shamrock Park on Saturday saw them take 10 points from their four meetings with the mid-Ulster club this season.
Mitchell opened the scoring with a fortuitous 18th-minute goal as his cross from the right sailed over goalkeeper David Miskelly and into the net.
The home side had chances to equalise but Mitchell made the three points secure by hammering the ball home in the 70th minute for his 19th of the season.
Nathaniel Ferris side-footed in a consolation strike from Matthew Parker's left-wing cross five minutes later but Rodney McAree's side remain in the hunt for seventh position.
Early setback for Warrenpoint
Bottom club Warrenpoint suffered an early setback in their basement battle as Stephen Hughes was sent-off for handling the ball on the line in the eighth minute.
Jason McCartney's resulting penalty was saved by Jonathan Parr but two minutes after the interval, McCabe gave the Fermanagh team the lead by drilling a 30-yard shot into the net.
Whitey Anderson's outfit were reduced to 10 men on 55 minutes when Ivan Sproule was shown a straight red card for lashing out with a foot after losing possession.
Ryan Campbell added his side's second, stabbing the ball into the roof of the net in the 62nd after getting on the end of an Emmett Friars knockdown.
United continue unbeaten run
Seventh-placed Ballymena extended their unbeaten run under new manager David Jeffrey to six matches, and boosted their chances of securing a Europa League play-off spot, by defeating struggling Carrick Rangers at Taylor's Avenue.
Cushley's 35th-minute long-range free-kick took an erratic bounce and sneaked past keeper Brian Neeson for the opener 10 minutes before the break.
Substitute Ruddy made it 2-0 10 minutes from time by firing left-footed past Neeson after Willie Faulkner's initial effort had been saved by the home stopper.
Carrick drop below Ballinamallard into 11th in the Premiership table, just two points ahead of Warrenpoint.
|Danske Bank Irish Premiership - results|
|Ballinamallard Utd||2-0||Warrenpoint Town|
|Carrick Rangers||0-2||Ballymena Utd|