Ballyhale Shamrocks (Kilkenny) 2-22 Kilmacud Crokes (Dublin) 2-19

Ballyhale Shamrocks have retained the AIB Leinster club SHC title, but the club's 12th provincial title didn't come without an almighty struggle against Kilmacud Crokes at Croke Park.

Leading by a whopping 14 points with 25 minutes remaining, the Kilkenny champions almost had their third consecutive provincial crown torn from their grasp as Kilmacud Crokes reduced the deficit to a point in the 47th minute.

Eoin Kenneally's fortunate 49th-minute goal - when his ball in from the left wing somehow snuck to the net - went a long way to securing the win for the Shamrocks.

But they still couldn't fully breathe out and celebrate a place in the All-Ireland semi-finals later this month until full-time as Crokes threw everything they had at it late on.

Kieran Dowling's Crokes hit 1-07 without reply in the third quarter to haul themselves back into contention after a terrible first half, but that Kenneally goal and late points from TJ Reid just about got the red-hot favourites over the line.

They will take on new Munster champions Ballygunner in the All-Ireland semi-final on the weekend of 17/18 December - a mouthwatering repeat of last year's decider which the Gunners won.

But it will be a difficult Christmas for Crokes who may feel that having reeled Ballyhale in with goals from Caolan Conway and Alex Considine, they ought to have pushed on and finished the job.

Crokes were boosted by the return of Considine following suspension and an early point from the Dublin attacker helped the underdogs to lead by 0-03 to 0-02.

But they then went 20 minutes - from the eighth to the 28th - without scoring and conceded 1-09 in that period, leaving them desperately chasing the game from there on.

Crokes struggled to make any inroads from their own puckouts initially, found the diagonal wind which was largely blowing against them difficult to deal with and looked in real trouble by the half-hour mark.

Ballyhale had struggled early on against Naas in the semi-finals but were clearly keen to hit the Dubliners hard and early this time and opened up a 1-11 to 0-03 lead after 27 minutes.

Colin Fennelly got that scoring blitz underway with an eighth-minute point and pinched the 24th-minute goal which came as such a hammer blow to Crokes.

TJ Reid, who struck 0-08 overall, was terrific in the build-up to the goal, fielding superbly and eventually allowing Fennelly to play the ball to Eoin Cody whose shot was blocked. It looked as if Crokes defender Robert O'Loughlin would clear to safety but Fennelly snuck in and flicked the ball cleverly to the net.

Ballyhale were already in a playful mood, spraying the ball around beautifully and one long, crossfield ball ended with Richie Reid thundering a point over from distance.

Adrian Mullen was influential too as Ballyhale hinted at another huge win to match last year's six-goal mauling of Clough-Ballacolla.

Their 1-15 to 1-07 half-time lead didn't flatter them and they pushed the margin out to 14 after the restart with scores from Paddy Mullen, Adrian Mullen and Niall Shortall.

Remarkably, they didn't score again themselves for 11 minutes and this time it was Crokes who took full advantage, registering that 1-08 haul without response to turn a near lost cause into a proper contest again.

Conway netted in the 35th minute after being fed by Ronan Hayes while Fergal Whitely came strongly into the game and rising star Dara Purcell added a series of points.

When Considine then netted in the 47th minute, having gone close with an earlier goal attempt, the margin was down to just one, 1-19 to 2-15.

Joey Cuddihy responded with a Ballyhale point though and the killer score arrived shortly after when Kenneally's ball in from the left wing slipped beyond the Crokes goalkeeper whose vision was perhaps obscured by Shamrocks man Shortall challenging for the high ball.

Considine had another half goal chance for the back-to-back Dublin champions but Ballyhale, despite dropping five point attempts short in the second half, just about held on with Reid scoring their last two points of the game.

Ballyhale Shamrocks: Dean Mason; Killian Corcoran, Joey Holden, Darren Mullen; Darragh Corcoran, Richie Reid (0-01), Evan Shefflin; Paddy Mullen (0-01), Adrian Mullen (0-04); Eoin Kenneally (1-00), TJ Reid (0-08, 0-05f), Eoin Cody (0-02); Niall Shortall (0-02), Colin Fennelly (1-03), Joey Cuddihy (0-01).

Kilmacud Crokes: Eddie Gibbons; Cian MacGabhann, Darragh Butler, Brian Sheehy; Robert O'Loughlin, Mark Grogan, Cian O Cathasaigh; Brian Hayes (0-01), Dara Purcell (0-05); Caolan Conway (1-00), Ronan Hayes (0-01), Fergal Whitely (0-02); Alex Considine (1-01), Micheal Roche (0-01), Oisin O'Rorke (0-08, 0-06f, 0-01 65).

Subs: Brendan Scanlan for Conway 52, Bill O'Carroll for Grogan 54-58 blood, Sean Purcell for Roche 58.

Referee: Paud O'Dwyer (Carlow).