Ballymena United suffered only their third defeat of the Danske Bank Premiership campaign as they lost an action-packed match at Windsor Park.
Defender Johnny Taylor headed two goals for Ballymena from corners but the Sky Blues suffered from some poor first half defending as they left themselves just too much to do.
Both teams fashioned openings inside the first three minutes with Ross Clarke cutting in from the right for Linfield but his strong run ended with his mis-hit shot trundling wide of the post, while David Cushley fired over from Ballymena’s first chance.
Ballymena survived an early let-off as Johnny Taylor cleared Andy Waterworth’s seventh minute shot off the line after keeper Dwayne Nelson had come quickly off his line to block an Ivan Sproule effort.
And Taylor was the hero in a completely different sense at the opposite end of the pitch a minute later as he arrived at the near post to glance home Neal Gawley’s corner.
Linfield’s equaliser on 21 minutes came in the same manner as Nelson got nowhere near Ross Clarke’s corner and Chris Hegarty’s looping header dropped in at the unguarded far post.
And the Blues went in front five minutes later from another set-p;piece, this Hegarty bundling the ball home after Niall Quinn’s free kick had come back off the post.
With Ballymena reeling, Ivan Sproule had a chance to extend Linfield’s lead but as he bore down on goal, he could only chip his effort over the crossbar.
United might have drawn level on 38 minutes when Taylor headed wide from a Gawley free kick, with the defender and Allan Jenkins appearing to get in each other’s way.
And that miss became even more costly as Linfield made it 3-1 a minute later. Once again, the danger came down Ballymena’s right side and ended with Aaron Burns cleverly knocking the ball past Gary Thompson, running around the other side of the United player before beating Nelson at the near post.
Manager Glenn Ferguson’s response was to replace the out-of-sorts Mark McCullagh with Tony Kane at right-back but it almost got worse for United in the opening minute of the second half as Johnny Taylor attempted to play his way out of danger inside his own penalty area but only succeeded in losing possession, with Stephen Lowry eventually firing a shot over the bar.
Ballymena rallied and Darren Boyce forced Tuffey into a smart save low down and Cushley twice forced the Linfield keeper to make smart saves before United turned their spell of pressure into a goal on 64 minutes.
It came once again from a Gawley corner, met with a downward header from Taylor with the referee’s assistant adjudging that the ball had crossed the line before being cleared.
Darren Boyce shot weakly at Tuffey with an equaliser a possibility before Ross CLarke burst clear only to be denied by an excellent block by Nelson, who spread himself to block the winger’s effort.
As Linfield attempted to put the game to bed, Andy Waterworth could only head straight at Nelson from Clarke’s cross, while at the other end, Cushley flashed a header just wide.
Ballymena came within a whisker of an equaliser when Neal Gawley’s inswinging free kick glanced off the head of the defender before striking the post with the ball going behind for a corner, from which Cushley’s flying header was beaten out by Tuffey.
ANd from a long throw by Gawley, the ball broke for Jenkins whose shot was squeezed behind.
ANdy Waterworth almost scored a fourth for Linfield in a counter-attack in stoppage time while Johnny Taylor’s injury tiem header dropped onto the roof of the net.
Linfield: Tuffey, Ward, Hegarty, Haughey, Quinn, Sproule, Lowry, Burns (sub Mulgrew 84), Clarke (sub CLucas 90+2), Carvill (sub Millar 79), Waterworth. Subs (not used): Glendinning, Morrow.
Ballymena United: Nelson, McCullagh (sub Kane 46), Taylor, Stewart, McBride, Gawley, Thompson (sub Surgenor 80), Jenkins, Cushley, Boyce (sub Teggart 76), Tipton. Subs (not used): Ruddy, McVey.
Referee: Ian McNabb (Glengormley).