Ballygunner (Waterford) 2-19 Slaughtneil (Derry) 1-17

They were made to battle all the way but Ballygunner ultimately secured their AIB All-Ireland club senior hurling final place and have two-goal hero Billy O'Keeffe to thank.

The eight-in-a-row Waterford champions, who blew Kilmallock away in the Munster final, had to dig deeper this time with O'Keefe's goals, struck at the beginning of both halves, proving crucial.

Darragh O'Sullivan's side will advance to play Ballyhale Shamrocks or St Thomas' in the final on February 12/13 and will challenge for a first ever All-Ireland title.

Dessie Hutchinson, Mikey and Kevin Mahony all struck important points too though Ballygunner may kick themselves for not winning a little more comfortably.

They got on top in the third quarter and opened up a seven-point lead at one stage but were undermined by wides - nine in the second-half and 15 in total - as Slaughtneil reduced the deficit to four on two occasions in the final quarter.

Shane McGuigan's stoppage time goal for Slaughtneil left that narrow margin between the teams again but Ballygunner held on with Kevin Mahony wrapping up the scoring for them.

It's another painful All-Ireland semi-final defeat for Slaughtneil who also lost out to eventual champions Ballyhale Shamrocks at this stage in early 2020 by the same margin.

Ballygunner approached the encounter as almost unbackable favourites and hinted initially that they would cover the seven-point handicap placed upon them by bookmakers with ease.

With just four minutes on the clock they led by 1-02 to no score and were pulling the Slaughtneil defence asunder at times with their slick hurling and perfectly timed passes.

Slaughtneil deployed Gerald Bradley as their seventh defender - Ballygunner responded by leaving joint-captain Philip Mahony in a free role at the other end - though the south-Derry men were powerless to prevent Ballygunner racking up that early lead.

Conor Sheahan and Kevin Mahony sniped points before O'Keeffe, who struck 2-03 in total, was picked out by a clever Peter Hogan pass on the left of goals and struck to the net.

It seemed all so easy for Ballygunner who put together one outrageous attacking move in the sixth minute that almost resulted in one of the goals of the championship.

Hutchinson began it with a pass to Kevin Mahony who found Hogan with a clever pass down into the ground that bounced up kindly. Hutchinson had continued a looping run back towards goal and was picked out by Hogan but his eye-catching volley was saved by Slaughtneil 'keeper Oisin O'Doherty.

The underdogs could have been overawed by such expansive and free-flowing play but dug in and responded impressively with points from Cormac O'Doherty, Brendan Rodgers and Brian Cassidy.

Sweeper Bradley emerged as an influential player for Slaughtneil and helped tighten things up at the back, fetching one great ball from the air and beginning a move that ended with Jerome McGuigan scoring.

Rodgers had an interesting head to head with Ballygunner full-back and joint-captain Barry Coughlan.

Dual star Rodgers edged that contest in the first-half and scored two points while Se McGuigan got in on the scoring act too, leaving Slaughtneil trailing by just 0-09 to 1-08 at half-time.

Ballygunner began the second-half in similar fashion, with a Conor Sheahan point and an O'Keeffe goal, Kevin Mahony this time supplying the pass for the three-pointer, and they now led 2-09 to 0-09.

Pauric Mahony was errant on the frees though, striking three in a row wide at one stage, and it prevented Ballygunner from forging further ahead.

As it was, they led 2-13 to 0-12 at the second water break but were on top and dominant from Slaughtneil's puck-outs so should have capitalised more.

It almost came back to haunt them too as Slaughtneil fought back bravely with four points in a row immediately after the water break, two from the excellent Rodgers.

They needed a goal, however, and it didn't arrive until stoppage time when it was ultimately too late as the Gunners held on with back to back Hutchinson points late on proving hugely important.

Ballygunner: Stephen O'Keeffe; Ian Kenny, Barry Coughlan, Tadhg Foley; Shane O'Sullivan, Philip Mahony, Ronan Power; Conor Sheahan (0-02), Paddy Leavey; Pauric Mahony (0-02, 0-02f), Mikey Mahony (0-01), Peter Hogan (0-03); Dessie Hutchinson (0-04), Kevin Mahony (0-04), Billy O'Keeffe (2-03, 0-01f).

Subs: None.

Slaughtneil: Oisin O'Doherty; Karl McKaigue, Sean Cassidy, Paul McNeill; Gerald Bradley; Meehaul McGrath, Conor McAllister, Shane McGuigan (1-00); Cormac O'Doherty (0-07, 0-06f), Christopher McKaigue; Se McGuigan (0-01), Jerome McGuigan (0-02); Mark McGuigan, Brendan Rodgers (0-04), Brian Cassidy (0-03).

Subs: Peadar Kearney for Sean Cassidy 50, Jack Cassidy for Mark McGuigan 53.

Referee: Sean Stack (Dublin).