Media playback is not supported on this device
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.
Media playback is not supported on this device
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.
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.
Media playback is not supported on this device
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.

Reports say riot police were involved in a tense stand-off with protesters, but later retreated.
Protesters rallied after Nasser Zefzafi was arrested on Monday charged with threatening national security.
Mr Zefzafi has organised months of protests against unemployment and corruption.
Morocco has been gripped by demonstration since the death of a fishmonger in Al-Hoceima in October.
According to AFP news agency, protesters chanting "We are all Zefzafi" filled streets in Al-Hoceima on Tuesday evening and riot police were deployed in a square to stop their advance.
A stand-off ensued but police eventually backed down without incident.
Marches have also taken place in Casablanca and in the capital, Rabat, AFP reports.
The mass protests were triggered last October by the death of fishmonger Mouhcine Fikri, who was crushed to death by a rubbish truck as he tried to rescue his stock that had been confiscated by the police.
Thousands of protesters took to the streets accusing the authorities of corruption, abuse and injustice.
His death drew parallels to that of a Tunisian fruit seller in 2010 which helped spark the Arab Spring uprisings.
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.
[NEXT_CONCEPT]
Thousands of people have demonstrated in the northern Moroccan city of Al-Hoceima, demanding the release of a well-known activist.