Ten-man Dundalk were dogged until the end as they held firm to secure a valuable win on the road at a sun-soaked Dalymount Park.

The Lilywhites hardly enjoyed long spells of domination, but they were determined enough to hold out for a narrow win courtesy of a controversial, freak goal from Darragh Leahy.

On the stroke of half-time, the left-back struck a hit-and-hope clearance towards the Bohemians goal which was contested in the box by both John Martin and goalkeeper Tadgh Ryan.

There was a collision between striker and goalkeeper – leaving both on the floor and the ball in the net, courtesy of a fumbled catch by the latter.

Bohemians were furious it wasn't called as a foul but the goal was allowed to stand after a moment of thought from referee Adriano Reale.

Andy Boyle (left) is shown a red card by referee Adriano Reale

Dundalk suffered a nervy ending after Andy Boyle was flashed a straight red card early in the second half, following a cynical foul on Ethon Varian.

However, Bohemians missed a series of late chances, as Dundalk left with all three points and reduced the gap on Shamrock Rovers to four points.

In a quirk of the summer football fixture schedule, this was the Gypsies first home game for 42 days.

And the Dublin side have undergone a drastic transformation since their home fans last saw them.

Like many of their domestic rivals, Keith Long's side suffered a summer raid when they lost Promise Omochere and Dawson Devoy – their two top-scorers this season – to Fleetwood Town and MK Dons respectively.

However, Long has recruited from home and abroad to introduce nine summer signings – seven of whom started here.

Individual skill from Ali Coote and James Clarke gave Bohs the best of the early chances.

Jinking past Leahy, Coote charged forward before winning the game's first corner – which Ciaran Kelly narrowly fired over moments later.

The hosts were through again when Clarke, easily slinking around Sam Bone, unleashed a weighted through pass for Varian to chase. However, Leahy was well-placed to make a last ditch tackle.

Dundalk’s difficulties were further compounded when Patrick Hoban – their captain and top scorer this year – was forced off with injury after 12 minutes.

John Martin in action against Rory Feely of Bohemians

It took until after the night’s first water break for Dundalk to start making inroads into the Bohemians half.

And it was substitute Martin who caused the most trouble for Ryan in the Bohemians net.

Chasing down a long, looping ball forward from Leahy, Martin was incessant as he jumped up to challenge Ryan, who attempted to catch the ball just beyond his six-yard box.

It was a 50-50 challenge, but one that almost always goes in favour of the goalkeeper.

Dundalk went into the break the happier of the sides, but seven minutes after the restart they were reduced to ten men when Boyle pulled back Varian as he charged through on goal.

The hosts failed to convert the resulting free-kick, while Dundalk immediately sought to slow down proceedings.

It’s not often goalkeepers get treated for cramp, but Nathan Shepperd spent the best part of five minutes getting stretched on the pitch prior to a goal-kick.

The game’s second water break further halted any Bohemians momentum.

The hosts did have chances, though. Substitute Johnny Afolabi flashed one dangerous strike across the goalmouth, while Varian headed a corner just wide with ten minutes to go.

Causing problems for all of his 30-minute cameo, Afolabi had another gilt-edged opportunity to equalise in the final two minutes, but his shot inside the box bounced off the wrong side of the post.

Bohemian FC: Tadgh Ryan; Jordan Doherty (Conor Levingston 46), Ciaran Kelly, Josh Kerr, Ryan Burken (Junior Ogedi-Uzokwe 83); James Clarke, Ali Coote, Laurenz Dehl (Rory Feely 46); John O’Sullivan (Johnny Afolabi 61), Declan McDaid (Liam Burt 73); Ethon Varian.

Dundalk FC: Nathan Shepperd; Lewis Macari, Sam Bone, Andy Boyle, Darragh Leahy; Greg Sloggett, Alfie Lewis; Steven Bradley, Joe Adams (Robbie McCourt 54), Ryan O’Kane (Robbie Benson 79); Patrick Hoban (John Martin 12).

Referee: Adriano Reale.