A magnificent final quarter from Cavan, during which they out-scored Galway by 1-5 to 0-1, helped the Breffni lads into their first All-Ireland MFC semi-final since 1974.
Galway led by the odd point in 11 after what was a lacklustre, stop-start first half during which ref James Bermingham dished out four yellow cards and one black – the final tally was six yellows and two blacks – and the Connacht champiosn generally were the better side.
It took Cavan 15 minutes to register their first point through Oisin Pierson, by which stage they had already shipped three at the other end from Padraic Costello, Darragh Silke (free) and a great strike from Matthias Barrett.
Within seconds of opening their account, Cavan added another from Tiernan Reilly, which was cancelled out by Conor Campbell.
Another Silke free made restored the three-point gap before Cavan enjoyed their best spell, Ruairi Curran kicking two excellent points and Philip Rogers adding another before a Costello rounded off the first-half scoring.
Galway, for whom full-back Sean Mulkerrin and centre-forward Liam Silke impressed, kicked on in the third quarter, two Silke frees and a super Evan Murphy effort extending their lead to 0-9 to 0-5.
Man of the Match Cian Madden kick-started the revival with a fantastic point and although Costello responded with a free, another fine Madden effort and two from his clubmate Pierson (one free) made it a one-point game.
Silke capitalised on an error at the back by Cavan but the Ulster side weren’t done yet and after wasting a good goal chance, they created another and Pierson smashed it to the roof of the net as they took the lead for the first time.
In the closing stages, Madden conjured a majestic score and then tacked on a free as Cavan recorded what looked, with 15 minutes to go, a most unlikely win.
Scorers for Cavan: Oisin Pierson 1-3 (1f), Cian Madden 0-4 (1f), Ruairi Curran 0-2, Tiernan Reilly 0-1, Philip Rogers 0-1
Scorers for Galway: Darragh Silke 0-6 (5f), Padraic Costello 0-3 (2f), Evan Murphy 0-1, Conor Campbell 0-1,
Cavan: Gary O’Rourke, John Cooke, Evaan Fortune, Killian Brady, Philip Nulty, Cormac Timoney, Danny Cusack, Ronan Patterson, James Smith, Ruairi Curran, Cian Madden, Philip Rogers, Oisin Pierson, Patrick Lynch, Tiernan Reilly
Sub: Ryan Coyle for Brady (22 mins, BC), Oisin Kiernan for Timoney (BC, 32 mins), Niall McCabe for Reilly (42 mins), Sean Keogan for Lynch (46 mins)
Galway: Oran Burke, Eoin McFadden, Sean Mulkerrin, Colin Murray, Jack Glyn, Sean Fitzgerald, Liam Boyle, Matthias Barrett, Evan Murphy, Brian Harlowe, Darragh Silke, Liam Costello, Conor Campbell, Padraic Costello, Daniel Kenny
Subs: Martin Kerrigan for Harlowe (HT), MacDara Geraghty for L Costello (HT), Matthew Tierney for Geraghty (55 mins)
Ref: James Bermingham (Cork)