Colm O'Neill shook off his injury heartache to inspire Cork to the head of the Allianz League Division 1 with a 1-17 to 0-18 win over title holders Dublin.

An early 1-3 burst from John Hayes put the Rebels ahead as they clung on for a morale boosting win at Croke Park. 

But the man who ultimately separated the sides in front of 19,626 crowd was O'Neill whose two late points proved crucial.

The 2012 All-Star missed last year with cruciate ligament trouble but needed just 20 minutes to make his mark.

His first score broke an 18-minute barren streak for the Rebels, while his brilliant 70th minute solo run and point proved to be the insurance score.

The result leaves Cork top of Division 1 with six points from six despite a spate of winter retirements. 

It was impressive stuff from Brian Cuthbert's side who appeared to be in danger of a heavy defeat early on.

Cormac Costello started brightly for Dublin and kicked three points in the first seven minutes. Jim Gavin's side soon moved 0-7 to 0-3 clear and looked well capable of stretching the gap.

But Cork took advantage of Daniel Goulding's free-taking prowess to close the deficit. Goulding booted over four points in a row, all from placed balls, to tie it up - and his excellence seem to inspire those around him.

Brian Hurley and Paul Kerrigan wove some impressive attacks as Cork began to dominate and the Rebels soon netted  a goal, Hayes scoring it in the 29th minute with a stunner after smart work by Mark Collins and John O'Rourke.

That goal put the visitors three clear and they were deserved 1-11 to 0-12 leaders at half-time.

Dublin clearly missed Paul Flynn, who pulled out beforehand, and Gavin also switched Cian O'Sullivan to centre-back and James McCarthy to midfield.

The Dubs looked vulnerable in defence at times, particularly under the high ball.

Rookie full-back Sean George paid the price for a poor start on Hayes and was subbed after 25 minutes.

Former minor star Eric Lowndes also made way at half-time.

The second-half was more cagey and tactical. Hayes was subdued by Dubs defender Jonny Cooper and replaced while O'Sullivan got to grips with Goulding.

Costello hit his fourth point after the restart to leave just one in it, but it wasn't until 10 minutes from time that Dublin drew level.

The All-Ireland and League champions shot four points in a row to set up a thrilling finale at 0-17 to 1-14.

The sides were level again before substitute Donal Og Hodnett put Cork ahead.

O'Neill's 70th minute score was the insurance score and worthy of settling the contest as he soloed in from the right wing and slotted between the posts from a tight angle.

Cork: K O'Halloran, C Dorman, E Cadogan, N Galvin, J Loughrey, A Cronin, T Clancy (Fermoy), A Walsh, F Goold (0-01), J O'Rourke, P Kerrigan (0-01), M Collins, D Goulding (0-07, 7f), B Hurley (0-01), J Hayes (1-03).

Substitutes: D Og Hodnett (0-02) for Galvin, C O'Neill (0-02) for Hayes, R Deane for Walsh, A O'Sullivan for Goold, C O'Driscoll for Hurley, K O'Driscoll for Loughrey.

Dublin: S Cluxton (0-03, 3f), S George, P McMahon, M Fitzsimons, E Lowndes, C O'Sullivan, J Cooper, J McCarthy (0-01), MD Macauley, D Byrne, C Reddin (0-02), B Cullen, K McManamon (0-03), C Kilkenny (0-03, 1f), C Costello (0-04, 1f).

Substitutes: D Nelson for Lowndes, E O'Gara for Byrne, P Hudson (0-01) for Costello, S Carthy (0-01) for Reddin.

Referee: P Hughes (Armagh).