Linfield kept the pressure on leaders Glenavon after striking late at Stangmore Park in a 2-1 victory.
The Blues - having lost the previous weekend away to Ards - made hard work of it against bottom-placed Dungannon Swifts.
They had to come from behind to win, with Mark Stafford capping a second-half turnaround.
David Healy’s side made the early running in the chilly conditions.
After 10 minutes, a corner-kick led to a scramble, with Andrew Waterworth flicking the ball towards goal but Niall Morgan saving well.
The Swifts settled and created a series of corners. One from Mark Patton picked out Douglas Wilson, who headed wide.
The same two combined in the 41st minute to give the Swifts the lead.
Jarlath O’Rourke was fouled and, from the free-kick, Patton’s delivery found Wilson, who guided home a looping header.
Dungannon came close to a second before the break, with Roy Carroll making a fine double save to deny Daniel Hughes.
Linfield, though, got their act together in the second half.
They were back on level terms in the 55th minute as a quick break forced the equaliser.
Niall Quinn’s cross looked to pick out Waterworth, but the ball hit Jake Dykes, bouncing off the Dungannon defender for an own goal.
The Swifts then had Seanan Clucas sent off after he received a second booking, for a strong challenge on Waterworth.
Linfield began to have more of the possession, but they struggled to break down a well-organised Dungannon defence.
Indeed, the home side came close to nicking a second when Paul McElroy turned neatly on the corner of the box and forced Carroll into a fine one-handed stop.
As the clock ticked down, it seemed the Swifts were holding out for a point. But Linfield never gave up, and grabbed the win two minutes from the end.
They broke quickly from a Dungannon corner, with Morgan denying Michael O’Connor.
The ball was kept alive, with Matthew Clarke feeding it back into the box, where Stafford was waiting to nod home.
DUNGANNON SWIFTS: Morgan, Dykes, Hegarty, Wilson (McMullan, 67), Clucas, Hughes (Hutchinson, 62), McElroy, Teggart, O’Rourke, Patton (Lafferty, 78), Lowe.
Subs (not used): Coney, Armstrong, Burke, Campbell.
LINFIELD: Carroll, Stafford, Callacher, Waterworth, Cooper, Millar (Stewart, 75), Clarke, Kearns (O’Connor, 51), Mulgrew, Mitchell, Quinn.
Subs (not used): Nielsen, Fallon, Smith, Garrett, McGuinness.
Referee: Shane Andrews.