Leinster title holders Kilkenny are on the brink of a return to the provincial final after powering past Dublin at Parnell Park, two-goal hero Martin Keoghan setting the Cats on their way.

Nearly 9,000 poured into the sun-kissed Dublin venue in anticipation of a cracker but after a competitive 50 minutes or so, Kilkenny completely took over and marched on to a double-scores win.

Keoghan finished with 2-01 while TJ Reid helped himself to 1-07 with Adrian Mullen and Cian Kenny excellent too and contributing 0-09 between them.

It's Kilkenny's third win of the campaign and leaves them safe in the knowledge that a victory over Wexford next Saturday will propel them through to the provincial final.

As for Dublin, all is not lost because while they caved in badly in the final 20 minutes or so, if they can pick things up and beat Galway next weekend in Salthill then they too will be through to the final in what could yet be a rematch with Brian Cody's side.

Keoghan netted in the 28th and 47th minutes, his second breaking the back of Dublin's challenge, and Kilkenny went on to score the last nine points of the game as they cantered to a 17-point win.

Mullen pointed for Kilkenny in the opening seconds of the game and with four scores registered - two points for each team - in the first two minutes alone, it looked like a thriller might be on the cards in front of 8,750.

Dublin's Cian O'Callaghan side-steps Walter Walsh

Cody shifted around his Kilkenny personnel before throw-in with four late changes to the published team; Richie Reid replacing Conor Browne in defence, Alan Murphy coming in for Cillian Buckley in midfield, where he partnered Mullen, along with starts in attack for Kenny and Keoghan in place of James Maher and Billy Ryan.

Keoghan and Kenny joined Eoin Cody in a new look Kilkenny full-forward line that caused James Madden, Eoghan O'Donnell and Cian O'Callaghan plenty of bother in the Dublin full-back line.

Kenny sniped three of Kilkenny's first four points and with the Cats reeling off four scores in a row between the 13th and 20th minutes, they put daylight between the teams for the first time with a 0-07 to 0-05 advantage.

After wins over Laois, Wexford and Westmeath, it was Dublin's biggest challenge of the campaign so far and they rose to it initially, fighting back and drawing level at 0-07 apiece thanks to scores from Chris Crummey and their top scorer Donal Burke.

The sides were level six times in total in a frantic first half before Keoghan struck his 28th minute goal, a strike that separated the sides at the break as visiting Kilkenny led 1-11 to 0-11.

It was a quality three-pointer from Keoghan who showed his class with a neat chop-flick up to gain possession on the right of goals before releasing a low shot that beat Dublin goalkeeper Sean Brennan.

Rian McBride and Donal Burke responded with Dublin scores but Kilkenny carried most momentum into the interval as they closed out the half with points from Alan Murphy and Keoghan.

Martin Keoghan (L) found the net twice for Kilkenny

Kilkenny were good value for the three-point lead as Walter Walsh had a decent goal chance too that struck the side-netting in the 16th minute.

Mark Schutte came on for Dublin, just his third appearance of the year following injury, and pulled back a point after the restart.

But Keoghan's second goal was crucial and opened up a six-point lead, shattering Dublin's confidence.

From there on, it was all Kilkenny and they finished with nine different scorers as Reid - who struck an excellent 55th minute goal after shaking off the attentions of Donnacha Ryan - came thundering into the game with late scores too from Cody, Mullen, John Donnelly and sub Buckley.

Dublin: Sean Brennan; James Madden, Eoghan O'Donnell, Cian O'Callaghan; Donnacha Ryan, Paddy Smyth, Daire Gray (0-01); Conor Burke (0-02), Chris Crummey (0-01); Donal Burke (0-09, 0-07fs), Rian McBride (0-01), Danny Sutcliffe; Fergal Whitely (0-01), Ronan Hayes, Aidan Mellett.

Subs: Mark Schutte (0-01) for Mellett (33), Eamonn Dillon (0-01) for Hayes (55), Andrew Dunphy for Gray (59), John Bellew for O'Donnell (63), Davy Keogh for McBride (65).

Kilkenny: Eoin Murphy; Mikey Butler, Conor Delaney, Tommy Walsh; Mikey Carey, Richie Reid, Paddy Deegan; Adrian Mullen (0-05), Alan Murphy (0-03); Walter Walsh, TJ Reid (1-07, 0-05fs), Padraig Walsh; Cian Kenny (0-04), Martin Keoghan (2-01), Eoin Cody (0-02).

Subs: John Donnelly (0-01) for W Walsh (ht), Billy Ryan (0-01) for P Walsh (48), Conor Fogarty for Murphy (59), Cillian Buckley (0-01) for Mullen (65), David Blanchfield for Butler (68).

Referee: Thomas Walsh (Waterford).