Cavan and Fermanagh will meet again in the league final next weekend at Croke Park after the visitors produced a stirring finish to deservedly take both points and secure top spot in Division 3.

The old adage concerning which team's need is greater was expected to come into play here. While Cavan wanted to win, Fermanagh needed to do so unless Down did them a favour in Tullamore – and they played that way, especially in the closing stages.

As it turned out, Down did win easily against Offaly but Fermanagh made sure anyway – and the truth is, they probably should have won by more.

The Erne men were the better team in the first half but went in three in arrears, owing principally to the fact that two Cavan point attempts dropped short and ended up in the net.

The home side failed to raise a white flag from play in a forgettable opening 35 minutes as they built up a 2-03 to 0-06 advantage at the midway point.

Scoring chances in general were hard to come by early on, with the sides mirroring each other tactically, both bringing lots of bodies back and looking to force turnovers and break at pace.

Cavan got off to a dream start when a James Smith shot from a tight angle struck the woodwork and fell kindly for the in-rushing Jonny McCabe, who palmed to the net with just 30 seconds on the clock.

But Fermanagh shrugged off the early setback and by the 11th minute, they were level with quality scores from Aidan Breen, Darragh McGurn and Ronan McCaffrey.

Niall Carolan tries to escape Ché Cullen

Oisin Brady (free) and McGurn traded scores before Cavan struck gold again when Jack McKenna’s shot dropped short and Killian Clarke contested it and may have got the deftest touch to help it to the net.

That left Cavan three ahead on 22 minutes; they had another "goal" ruled out shortly afterwards when James Smith was blown for over-carrying. The brilliant Ultan Kelm improvised for an opportunist point; Cavan had a brace of frees from Oisin Brady and Kelm was denied a goal by a super Ray Galligan save as the Blues went in three up.

Mickey Graham’s men took a long time to re-emerge for the second half and when they did, they opened a five-point gap with two Gearoid McKiernan points, one free and one belter from long distance.

Cavan managed to keep Fermanagh at arm’s length with a Brady free in reply to two well-taken Ryan Jones scores but the Erne men were growing stronger and were back within three when Kelm started and finished a good move.

Sub Sean Quigley marked a Brandon Horan pass and converted and Kieran Donnelly’s side hit the front for the first time on 56 minutes when Lyons released Kelm and he scorched the end-line before beating Galligan with a blistering shot from a tight angle.

Cavan, getting joy off their press, responded well with a Brady free and a fisted point from sub Ryan O’Neill but Jones’s third impressive point of the half grabbed the momentum back for Fermanagh and Lyons and then Kelm both scored.

A Lyons free left some daylight between them; Galligan sent over a 45 in the dying seconds but Fermanagh soaked up the pressure and held on for a two-point win

Cavan: Raymond Galligan (0-01, 1 '45), Cian Reilly, Padraig Faulkner, Niall Carolan, Ciaran Brady, James Smith, Tiarnan Madden, Jack McKenna, Killian Clarke (1-00), Cian Madden, Oisin Brady (0-05, 5f), Jonathan McCabe (1-00), Gearoid McKiernan (0-02, 1f), Brandon Boylan, Conor Madden

Subs: Stephen Smith for Cian Madden (ht), Conor Smith for J McKenna (46), Jason McLoughlin for C Reilly (52), Ryan O’Neill (0-01) for Conor Madden (59), Martin Reilly for B Boylan (66), Killian Brady for N Carolan (temp, 70)

Fermanagh: Sean McNally, Lee Cullen, Che Cullen, Luke Flanagan, Jonathan Cassidy, Shane McGullion, Cian McManus, Ryan Jones (0-03), Brandon Horan, Josh Largo Ellis, Ryan Lyons (0-03, 2f), Ronan McCaffrey (0-01), Ultan Kelm (1-03), Daragh McGurn (0-02), Aidan Breen (0-01)

Subs: Conor McShea for A Breen (46), Sean Quigley (0-01, 1m) for R McCaffrey (49), Conor Magee for D McGurn (66), Declan McCusker for J Largo-Ellis (70), Fionan O’Brien for L Flanagan (39)

Ref: Thomas Murphy (Galway)