The visitors frustrated David Jeffrey's side in what was a dour first 45 minutes, before Andrew Waterworth opened the scoring with a wonderful strike from the edge of the area six minutes after the break.
Michael Carville added a second in the 75th minute when he finished from a Mark McAllister pass, and Billy Joe Burns made sure of the win with a shot into the roof of the net from a Waterworth flick-on.
Cliftonville, meanwhile, maintained pace with the Blues by securing a 2-0 victory away to Warrenpoint Town.
Liam Boyce made amends for an earlier miss when he finished at the second attempt for the opening goal five minutes before half time.
Warrenpoint attempted to battle their way back into the game, but a controversial penalty award ultimately settled proceedings.
Mark Hughes was somewhat harshly adjudged to have handled inside the area, and George McMullan converted the resulting spot-kick to seal the three points.
In the game at Clandeboye Park, third-placed Portadown survived a first-half scare to edge past bottom club Ards.
William Faulkner opened the scoring for Niall Currie's strugglers when he latched on to a long ball forward before deftly lobbing the ball over David Miskelly in the visitors' goal.
Portadown equalised early in the second half when Darren Murray steered in Gary Breen's header across goal in the 50th minute, and Ronnie McFall's side claimed all three points 11 minutes later when Emmett Friars headed home from a Chris Casement corner.
Elsewhere on Saturday, Glenavon and Glentoran both claimed their places in the top six ahead of the league split.
The Lurgan Blues were given a boost inside the opening 15 minutes of their game against Coleraine, with Bannsiders forward Gary Brown sent off after kicking out at William Murphy.
David Rainey opened the scoring for the hosts just before with a well-struck effort from just outside the area, but Adam Mullen netted the equaliser in the 57th minute.
However Glenavon's Ciaran Martyn restored his side's advantage with a low shot into the corner two minutes later, before scoring with a spectacular volley two minutes from time to wrap up a 3-1 victory.
Glentoran, meanwhile, earned their top-six spot with a 3-0 victory over Ballinamallard at Ferney Park.
Eddie Patterson's side dominated proceedings in the first half, but didn't get off the mark until the 74th minute when Curtis Allen opened their account with a fantastic turn-and-shot.
The second goal had a touch of fortune about it, with Fra McCaffrey's cross evading Mallards keeper Alvin rouse before ending up in the net.
McCaffrey added a second from close range three minutes into stoppage time to seal a comprehensive win.
Finally, Crusaders were 1-0 winners over Ballymena United at the Ballymena Showgrounds, with Declan Caddell chesting the ball into the path of Eamon McAllister to fire past Dwayne Nelson in the 60th minute for the only goal of the game.
Danske Bank Premiership Results:
Ards 1 - 2 Portadown
Ards: Willie Faulkner (22)
Portadown: Darren Murray (50), Emmet Friars (61)
Ballinamallard United 0 - 3 Glentoran
Glentoran: Curtis Allen (74), Francis McCafferty (90, 90+2)
Crusaders 1 - 0 Ballymena United
Crusaders: Eamon McAllister (60)
Glenavon 3 - 1 Coleraine
Glenavon: David Rainey (44), Ciaran Martyn (59, 78)
Coleraine: Adam Mullan (57)
Linfield 3 - 0 Dungannon Swifts
Linfield: Andrew Waterworth (51), Michael Carvill (75), Billy Joe Burns (82)
Warrenpoint Town 0 - 2 Cliftonville
Cliftonville: Liam Boyce (40), George McMullan (89P)