A blitz of 2-6 in 11 early second half minutes inspired by Con O’Callaghan and Paul Mannion sent Dublin into a fifth straight All-Ireland final.
As they extended their unbeaten run under Jim Gavin against Mayo to 15 games, O’Callaghan scored the two goals and Mannion kicked three points in that unanswered rally between the 36th and 47th minutes.
Mayo had been two points up but a sterling first-half by them was obliterated by Dublin who began the destruction with a Dean Rock free and continued with O’Callaghan’s first goal, the Dublin forward availing of a slip by Lee Keegan to beat Rob Hennelly.
The Mayo goalkeeper’s kick-outs were feasted on by Dublin and after another four Dublin points O’Callaghan easily lost Keegan from a free in to find the net in the 46th minute. Keegan did finish deftly for a goal in the 52nd minute but Brian Fenton sealed the win when he added a third goal in the 61st minute following some tidy work by Ciarán Kilkenny.
For all their good work, Mayo were only two points better than Dublin going into the break, 0-8 to 0-6. Goal chances were minimal in an incredible tactical battle where the ball was carried for considerable periods and Mayo were nothing like the erratic-shooting team of recent weeks.
Dublin were stripped for possession on 10 occasions in the first half and looked so much out of sorts. Patrick Durcan was lording it against Jack McCaffrey while Colm Boyle, who made two of those turnovers, helped himself to a score while keeping Kilkenny scoreless.
The match-ups were going Mayo’s way from Keegan against O’Callaghan to Matthew Ruane on Fenton. Ruane was one of three late changes to the Mayo side, captain Diarmuid O’Connor making his first appearance since his wrist injury and Donie Vaughan also coming in.
Mayo were two points up after three minutes and while Dublin were back on level terms by the 12th minute James Carr took a fine score a minute later to reinstate Mayo’s dominance only for Hennelly to lose composure and Mannion was able to score two points in quick succession.
The next three scores were Mayo’s, though, Durcan adding the first of his first-half brace in between scores by Cillian O’Connor, the latter a free. A Rock free in the 29th minute ended 14 minutes without a Dublin score.
Mayo went as far as three points ahead when Durcan added his second in additional time but Brian Howard posted a point just before the interval.
Scorers for Dublin: D. Rock (0-6, frees); C. O’Callaghan (2-0); P. Mannion (0-5); B. Fenton (1-1); B. Howard, N. Scully (0-1 each).
Scorers for Mayo: C. O’Connor (0-3, 2 frees); L. Keegan (1-0): P. Durcan (0-2); S. O’Shea, J. Carr, C. Boyle, S. Coen, F. Boland (0-1 each).
S. Cluxton (c); J. Cooper, M. Fitzsimons; D. Byrne; J. McCaffrey, J. McCarthy, J. Small; B. Fenton, M.D. Macauley; N. Scully, C. Kilkenny, B. Howard; P. Mannion, D. Rock, C. O’Callaghan.
Subs for Dublin: C. O’Sullivan for M.D. Macauley (50); E. Murchan for J. Small (63); C. Costello for P. Mannion (66); P. McMahon for J. Cooper (69); D. Connolly for N. Scully, P. Andrews for C. O’Callaghan (inj) (both 70+1); P. McMahon (back 70+7 not replaced).
R. Hennelly; L. Keegan, B. Harrison, C. Barrett; S. Coen, C. Boyle, D. Vaughan; M. Ruane, S. O’Shea; F. McDonagh, A. O’Shea, P. Durcan; J. Carr; D. O’Connor (c), C. O’Connor.
Subs for Mayo: K. Higgins for D. Vaughan (inj 29); K. McLoughlin for F. McDonagh (50); A. Moran for J. Carr (52); E. O’Donoghue for C. Boyle (58); T. Parsons for S. O’Shea (61); F. Boland for D. O’Connor (69).
Red card: C. O’Connor (second yellow, 70+3).
Referee: C. Lane (Cork).