Shamrock Rovers stretched their lead at the top of the Premier Division to seven points as they slogged their way past a bullish Finn Harps in Ballybofey.
Greg Bolger netted the winner five minutes from time as the Dubliners eventually overcame the battling north westerners.
Seeking a first top-flight victory on their own patch since the summer of 2017, it was Harps who almost stole a lead early on.
Sam Todd making the most of his imposing figure to meet Caolan McAleer’s free from the right. The centre half’s glancing header lacking direction however as the ball whistled past Alan Mannus’ post.
McAleer was involved again on 18. The former Sligo winger catching out a slumbering Joey O’Brien and with Mannus off his line, McAleer almost tucked a speculative effort inside the far post.
The Hoops struggled to produce the sort of form in the first 45 which swept Sligo Rovers aside seven days previous.
Dylan Watts forced Gallagher to ground as the Harps goalkeeper pushed a smashed effort around the post.
Watts clipping his next effort over the bar after he beat his marker to Aaron McEneff’s ball from the right.
Aaron Greene was unable to steer Dan Carr’s ball over the top goal-ward five minutes past the re-start. This after Greene stole a yard on Keith Cowan four yards from the target.
Disaster almost struck for Ollie Horgan’s men shortly after.
Gallagher dropped an O’Brien cross whilst under scrutiny from a number of opposing players. Cowan on hand to sweep away any danger as the ball made its way towards the line.
Sean Kavanagh fired wide on 66 as Rovers continued to probe an until now resolute Donegal back line.
Harps looked like they would come away with a valuable point, until Bolger popped up with five minutes to go.
The ball bounced around the Harps area before it eventually found its way to the match winner who blasted an unstoppable drive past the reach of Gallagher from 18 yards.
Finn Harps: Ciaran Gallagher; Keith Cowan, Niall Logue, Sam Todd; Colm Deasy, Daniel O’Reilly; Mark Coyle, Jacob Borg (Raffaele Cretaro 69), John Kavanagh; Caolan McAleer; Nathan Boyle (Mikey Place 82).
Shamrock Rovers: Alan Mannus; Joey O’Brien, Lee Grace, Roberto Lopes, Sean Kavanagh; Greg Bolger; Dan Carr (Orhan Vojic 75), Aaron McEneff (Joel Coustrain 65), Ronan Finn, Dylan Watts; Aaron Greene (Sam Bone 87).
Referee: Derek Tomney.