Cavan struck gold with the fastest goal of the campaign, Niall Murray nipping in to net after just 10 seconds after the Tyrone defence failed to clear McKiernan’s delivery.
McKiernan was an inspirational figure throughout for the Breffni side.
Tyrone responded with scores from Mattie Donnelly and Ronan O’Neill, but Cavan restored their three points advantage when Jack Brady swung over a point to add to Barry Reilly’s converted free.
Cavan recovered from a difficult spell to finish the half with three points, two of them booming efforts from skipper McKiernan, to go in at the break with a 1-5 to 0-4 advantage.
With seven minutes left, they still led by four, but O’Neill and Richard Donnelly narrowed the gap to two.
But Cavan held on and go forward play Wexford this Saturday in the All-Ireland semi-final.
Scorers for Cavan: N Murray 1-0, K Brady 0-4 (2f), G McKiernan, B Reilly (2f). P King 0-2 each.
Scorers for Tyrone: R O’Neill 0-4 (2f), N McKenna 0-2, R Donnelly, P Harte, M Donnelly, C Girvan 0-1 each.
N Morgan; R Pickering, R McNamee, F McQuaid; N Sludden, R McNabb, T McCann; N McKenna, R Donnelly; P McNeice, P Harte, S McGuigan; K Coney, M Donnelly, R O’Neill.
Subs: C Girvan for McGuigan (34), K Mossey for McNabb (49), D McNulty for McNeice (55), J McCullagh for McNulty (59)
A O’Mara; F Flanagan, O Minagh, D Tighe; K Meehan, D Barkey, M Brady; G McKiernan, M Leddy; N Smith, N Murray, B Reilly; J Brady, N McDermott, P Leddy.
Subs: T Mooney for Tighe (36), P King for M Leddy (47), C McClarey for Smith (52), S Smith for McDermott (55), D Flanagan for Reilly (60)
Referee: S McLaughlin (Donegal).