Tyrone scored a narrow Division One win at Croke Park to end Dublin's unbeaten run after a pulsating game.
It was a gutsy performance from a Red Hands side under pressure to bounce back following a home defeat by Cork.
Paul Flynn poked in Dublin's goal from close-range in the 15th minute but Tyrone responded and held a slender 0-10 to 1-6 advantage at the interval.
It was an exciting finish and Tyrone now have four wins from five and have a semi-final place in their sights.
Dublin had beaten Mickey Harte's men in the last three meetings between the sides in league and championship, so this will be a sweet success for the Ulster county.
Flynn and Stephen O'Neill swapped early scores, and goalkeeper Niall Morgan fired over a long range free, but Diarmuid Connolly and Paddy Andrews brought Dublin to within a point.
Flynn snapped up the Dublin goal but Tyrone responded by hitting the next three scores, two of them from Sean Cavanagh frees.
Craig Dias and Connolly both notched Dublin points, but it was the Red Hands who dominated the final five minutes of the half.
O'Neill hit his third point, as did Cavanagh, and a couple of Mark Donnelly scores sent Tyrone in with the 0-10 to 1-6 advantage.
And the Red Hands continued to press in the early stages of the second half, adding further scores through Martin Penrose, Cavanagh and Stephen O'Neill.
Dublin rallied, stringing together a sweeping move which ended with Connolly firing in a shot that was brilliantly saved by Morgan.
Connolly narrowed the gap from a free, but the score was quickly cancelled out by Colm Cavanagh,
However, the Dubs were beginning to dominate possession and driving forward in numbers.
Paul Flynn and Kevin McManamon both drove over points, the latter bringing the sides level in the 54th minute.
The introduction of Michael Dara Macauley helped give the Dubs an edge in midfield, and he was involved in the move that saw Paddy Andrews ease them back in front.
But Tyrone started to win loose ball around the middle, and scores from Paddy McNeice and substitute Plunkett Kane restored their one-point advantage heading into the final 10 minutes.
They tagged on further scores through Harte and Kane to go three clear, and while Macauley and Connolly pulled back late points, the visitors held on for a narrow win.
Dublin scorers: P Ryan 1-0, D Connolly 0-6 (5f), K McManamon, P Flynn, P Andrews 0-2 each, MD Macauley, C Dias.
Tyrone scorers: S O'Neill (1f), S Cavanagh (1f) 0-4 each, Mark Donnelly, P Kane, P Harte (1f), 0-2 each, M Penrose, N Morgan (f), P McNeice, C Cavanagh 0-1 each.
Dublin: S Supple, K O'Brien, G Brennan, D Nelson, J McCaffrey, C O'Sullivan, D Daly, D O'Mahony, D Bastick, P Flynn, C Kilkenny, P Ryan, P Andrews, D Connolly, K McManamon.
Subs: C Dias for Kilkenny, MD Macauley for Bastick, B Cullen for Dias, P Mannion for Ryan, N Devereux for Nelson.
Tyrone: N Morgan, A McCrory, C Gormley, C McCarron, Joe McMahon, Justin McMahon, R McNamee, C Cavanagh, S Cavanagh, Mattie Donnelly, P Harte, C McGinley, M Penrose, S O'Neill, Mark Donnelly.
Subs: P McNeice for Mattie Donnelly, P Kane for McGinley, R McKenna for Joe McMahon, C McAliskey for Penrose, D McBride for Justin McMahon, A Cassidy for C Cavanagh
Referee: M Duffy (Sligo).
Saturday 16 March
Allianz National League Division One
Cork 0-12 0-10 Donegal
Dublin 1-14 0-18 Tyrone
Kerry 0-11 1-5 Down
Mayo 0-13 1-11 Kildare
Armagh 1-10 1-12 Louth
Derry 1-14 0-05 Longford
Laois 1-15 0-10 Galway
Antrim 1-06 0-11 Roscommon
Cavan 1-10 1-12 Fermanagh
Meath 1-17 2-12 Sligo
Monaghan 5-13 3-10 Wicklow
Leitrim 3-14 3-07 Waterford
Limerick 0-09 0-15 Tipperary
Offaly 2-11 1-11 Carlow
Cork 1-16 1-22 Clare
Dublin 1-15 1-21 Limerick
Wexford 2-21 1-12 Antrim
Derry 1-17 1-14 Kildare 1-14
Kerry 1-12 3-05 Wicklow
Mayo 4-16 3-12 Armagh
Down 2-24 1-12 Roscommon
Louth 2-13 0-11 Monaghan
Tyrone 0-15 2-11 Fingal
Fermanagh 1-19 4-15 Donegal