Crusaders are still in contention after coming from behind to beat Ballinamallard 3-1 at Ferney Park while there were also wins for Portadown, Linfield and Glentoran with the game between Ballymena United and Lisburn Distillery ending in a 3-3 draw.
The Swifts made life difficult for the Reds in the first half with their pressing tactics but once the opening goal went in there was no way back as they offered little threat up front.
Dunagnnon manager Darren Murphy sportingly shook the hand of every Cliftonville player as they left the pitch despite his disappointment at the outcome.
The home team had the first chance early on as Darren Boyce neatly flicked the ball through for Joe Gormely but he was unable to control it and the opportunity was missed.
In the 34th minute Jody Lynch got in a shot which took a deflection before being beaten away for a corner by Swifts' goalkeeper Niall Morgan.
From the kick which was taken by Lynch Boyce rose unchallenged at the far post to powerfully head home the opening goal of the game.
Two minutes before the break Stephen Garrett got in a shot from an acute angle which Morgan cleared with his feet.
It was Garrett who created the opportunity for Cliftonville's second goal in the 53rd minute as he was fouled at the edge of the box by Francis Brennan.
It was a clear penalty and George McMullan made a fine job of converting from the spot to make it 2-0 and end any realistic chance of a Dunagnnon comeback.
Lynch could have made it three in the 69th minute after he set off on a mazy dribble only to be denied by a last ditch clearance.
Reds' sub Diarmuid O'Carroll also missed a chance to score with 10 minutes remaining when he shot narrowly past the far post but Cliftonville will be satisfied with the outcome with a tougher test to come against Linfield on New Year's Day.
Elsewhere on Saturday Crusaders ensured that they didn't lose any more ground on their north Belfast rivals with a 3-1 victory away to Ballinamallard.
However, the victory did not come without an early scare, with David Kee netting from close range after a rare mistake by Colin Coates to give the hosts an 18th minute lead.
The Crues got themselves back into the game in the 36th minute when Gary McCutcheon converted from the penalty spot after Steven Feeney had handled in the area.
McCutcheon turned provider just three minutes later when Mallards keeper Alvin Rouse could only palm his shot into the path of Jordan Owens, who made no mistake with his effort.
Declan Caddell made sure of the points with a fierce strike in the closing stages to seal the victory.
In the game at Windsor Park Linfield moved up to third with a 3-0 victory over Glenavon.
Brian McCaul grabbed the opening goal from the spot in the 32nd minute after Kris Lindsay had fouled Matthew Tipton, and the Welshman grabbed a goal of his own five minutes into the second half as he capitalized on some hesitant defending to fire low into the bottom corner.
Glenavon saw Ciaran Martyn sent off for a second yellow card before a screamer into the top corner from Ross Clarke sealed an important victory for the Blues.
Glentoran meanwhile remain just behind their Big Two rivals, bouncing back from their Boxing Day derby defeat with a thumping 5-0 victory over struggling Donegal Celtic at the Oval.
Richard Clarke opened the scoring in the 26th minute when he fired home a rasping volley after DC had failed to clear, and Jimmy Callagher made it 2-0 with a looping header from a Stephen Carson free kick six minutes later.
Mark Clarke then added a third in the 68th minute with a back post tap-in before Carson got his name on the score sheet after with a cool finish past DC keeper John Connolly.
Andrew Waterworth's penalty completed the rout a minute from time to move Eddie Patterson's side into fourth place in the table, just two points behind Linfield, while only Lisburn Distillery remain below DC.
The Whites could have leapfrogged the Suffolk Road side with victory over Ballymena United, but they squandered a 3-0 lead to allow the Sky Blues to snatch a dramatic late draw and halt their alarming six-game losing streak.
Tim McCann's side opened the scoring in the 37th minute when Gary Liggett made the most of an Aaron Stewart mistake to lay the ball off for Jordan Hughes to sidefoot home.
Liggett doubled their lead a minute into first half stoppage time with a low, hard finish, and Hughes added his second four minutes after the restart to give his side a seemingly insurmountable lead.
However, the Glenn Ferguson's side pulled a goal back three minutes after that when Gavin Taggart beat Billy Brennan with a deflected effort from the edge of the area.
Taggart was then shown a 66th minute straight red card following a challenge on Ryan McCann before the Whites themselves were reduced to ten men three minutes later when Aaron Traynor was dismissed.
David Cushley pulled another one back when he eventually beat Distillery keeper Billy Brennan after two initial shots had been saved, and Mark Surgeoner added the equaliser in the fourth minute of injury time.
Finally Coleraine fell to fifth in the table as they were beaten 2-0 by Portadown at Shamrock Park.
Richard Leckey opened the scoring with a header from a Ross Redman cross in the 39th minute, and Redman also provided the assist for the Ports' second, with Brian Gartland latching on to a long free kick to finish from 12 yards and consign the Bannsiders to their first defeat in three games.
Saturday's results in full:
Ballinamallard United 1-3 Crusaders
Ballinamallard United: Kee 18.
Crusaders: McCutcheon 36 (PEN), Owens 39, Caddell 85.
Ballymena United 3-3 Lisburn Distillery
Ballymena United: Taggart 52, Cushley 76, Surgenor 94.
Lisburn Distillery: Hughes 37, 49, Liggett 46.
Cliftonville 2-0 Dungannon Swifts
Cliftonville: Boyce 35, McMullan 53 (PEN).
Glenavon 0-3 Linfield
Linfield: McCaul 32 (PEN), Tipton 50, Clarke 83.
Glentoran 5-0 Donegal Celtic
Glentoran: Clarke 26, 70, Callacher 33, Carson 71, Waterworth 89 (PEN).
Portadown 2-0 Coleraine
Portadown: Lecky 39, Gartland 54.