Crusaders closed the gap on leaders Cliftonville to five points as Jordan Owens struck twice against the Swifts.
Dungannon scored a 21st minute opener against the run of play when in-form striker Josh Cahoon fired home after a good run and pass from Matt Hazley.
Owens netted a superb equaliser just after the break with an 18-yard volley flying past keeper Niall Morgan.
The forward secured a deserved win on 69 minutes, flicking in from a David McMaster cut-back.
Crusaders wasted a series of first-half chances with Timmy Adamson, Owens and Gary McCutcheon going close for the north Belfast side.
Morgan kept out a David Rainey effort after the equaliser before saving McCutcheon's shot.
The Crues have opened up a four-point lead over Ballinamallard and Coleraine while moving closer to their north Belfast rivals, who they play on Boxing Day.
"Jordan scored two excellent goals but Gary McCutcheon was the key for us, linking everything up perfectly," said Seaview boss Stephen Baxter.
"We're on a good run and the Boxing Day game will be well worth looking forward to, although our focus is just on the next match."