And… breathe out.

Limerick's three-in-a-row dream remains alive, but only just after they were pushed all the way by Galway in a tense, thrilling All-Ireland hurling semi-final.

The Tribesmen had trailed by four points at half-time, 0-16 to 0-12, but really should have at least been level after hitting a dozen wides, twice as many as the champions.

Brian Concannon’s brilliantly taken 38th-minute goal levelled the game and the lead then swung back and forth for the remainder.

The sides were level 10 times in all and there was never more than a point in this furious physical contest until injury-time when Treaty super sub David Reidy hit his third score.

John Kiely's Limerick advance to play Kilkenny for the chance of a first ever treble and fourth All-Ireland title in five years.

Henry Shefflin will be proud of his team's efforts in a game they were given little hope of winning but for Galway it’s a second three-point semi-final defeat in three seasons at the hands of the Green Machine.

The game began with 30 seconds of chaotic tackling, following which Tom Monaghan fired over the first of his four points on the day.

But from the puck-out Aaron Gillane found space and levelled it up. The Limerick sharpshooter quickly had three excellent scores from play as the champions reeled off six consecutive points in as many minutes, including two for Seamus Flanagan.

Bill Murray was watching in the stands and it was already looking like Groundhog Day for Galway but they settled and fought their way back, playing it calmly through the lines and picking off turnovers in midfield.

Monaghan again, Ronan Glennon after a winding solo run from David Burke, and a fine knockdown, turn and shot from Conor Cooney made it 9-6 after 22 minutes.

Galway's short puckout was giving them a good platform but there were a couple of scares - Willie O’Donoghue had a good shout for an advantage ignored and Kyle Hayes plundered the first of two scores in as many minutes after a loose handpass from Darren Morrissey.

Limerick's Kyle Hayes is challenged by Padraic Mannion

Somewhat surprisingly, Galway were matching Limerick physically and should really have been level but for some bad wides - though two of those were efforts ruled out by Hawk-Eye, from Conor Whelan (his only shot of the half) and Glennon.

Padraic Mannion and Barry Nash exchanged fabulous long-range scores while Gillane was on fire in the opening period, getting out ahead of both Jack Grealish and Daithi Burke to score at different stages.

Gillane’s fifth edged Limerick four ahead on the half hour but a Conor Cooney free and brace from Cathal Mannion, who had been sent deeper to fight the early fires in defence, trimmed that lead to the minimum.

Limerick coolly responded with three of their own: Gillane drawing and converting a free after another puckout malfunction, Hayes setting up Hannon and Gillane taking his tally to seven and sending his side in at the break with a four-point cushion.

Galway had gone toe to toe but there was a sense that there had been too many swings and misses.

They pushed Cathal Mannion further forward upon the resumption though and he cut the gap to three. Then suddenly, it was level. A long ball forward by David Burke was claimed by Concannon, who got in behind Mike Casey and whipped a near-post shot past Nickie Quaid into the roof of the net.

In the 44th minute, Jack Grealish fed Joseph Cooney and Galway were ahead for the first time since the opening seconds.

Limerick were starting to show signs of frustration. Two frees from Diarmaid Byrnes, who hit six in all, settled the nerves. The second came after Cathal Mannion was adjudged to have over-carried with Hayes in close attention. Shefflin and Limerick coach Paul Kinnerk were both shown yellow cards for sharing their opposing opinions on the incident. Every subsequent sideline ball was vocally contested.

Cathal Mannion drew Galway level again. Tom Morrissey inched Limerick back in front with their first score from play since half-time, 52 minutes in, but Whelan then fired over a superb point from the right sideline.

Limerick knew they were fighting for their lives now. Kiely called in the cavalry, Cian Lynch and Peter Casey sprung from the bench. But the pressure from Galway’s forwards was relentless and Glennon and Cooney (a free) scored from turnovers to send them ahead again after an hour. Byrnes pegged them back.

Monaghan put Galway in front for what was to be the last time with his fourth of the day, Gillane, kept quiet for most of the half, immediately hit back from the puckout.

Down the closing stretch and a Limerick substitute proved the difference, but maybe not the one we had been expecting. David Reidy was only introduced in the 61st minute but almost straight away took a pass from Lynch to score.

Fintan Burke bombed one over and Hawk-Eye finally favoured the Westerners. Hayes hit Galway again, Whelan, with his second tied it up with four to play.

Extra-time looked distinctly possible. Reidy didn’t fancy it. Twice Limerick kept possession and carefully worked it downfield for the Dromin/Athlacca man to apply the finishing touch. The challengers hit three wides in a row.

Byrnes’ final free, in the fifth minute of injury-time, meant Galway had to go long and pray for a goal. Hayes came away with the ball.

The result was expected but the manner of it was not. Limerick are back in the final. They’ve earned it in the hardest way possible.

Limerick: Nickie Quaid; Sean Finn, Mike Casey, Barry Nash (0-01); Diarmaid Byrnes (0-06f), Declan Hannon (0-01), Dan Morrissey; William O'Donoghue (0-01), Darragh O'Donovan; Gearoid Hegarty (0-01), Kyle Hayes (0-03), Tom Morrissey (0-01); Aaron Gillane (0-08, 2f), Seamus Flanagan (0-02), Graeme Mulcahy.

Subs: Peter Casey for Mulcahy (55), Cian Lynch for T Morrissey (57), David Reidy (0-03) for O'Donovan (61), Cathal O’Neill for Hegarty (62).

Galway: Éanna Murphy; Jack Grealish, Daithí Burke, Darren Morrissey; Padraic Mannion (0-2, 1f), Joseph Cooney (0-1), Fintan Burke (0-01); Ronan Glennon (0-02), David Burke; Tom Monaghan (0-04), Conor Cooney (0-05, 4f), Jason Flynn; Conor Whelan (0-02), Brian Concannon (1-00), Cathal Mannion (0-04).

Subs: Cianan Fahy for Flynn (52), Johnny Coen for Glennon (64), Evan Niland for David Burke (66), Kevin Cooney for Conor Cooney (75).

Referee: Thomas Walsh (Waterford)