Goalkeeper Conor McAneney made three saves and it was Noah Grimes who slotted home the winning kick.
Derry hit the front with captain Patrick McGurk’s early score with Ronan Cassidy levelling in a tough opening spell.
Shea McCann and Conor O’Neill traded scores before Johnny McGuckian hit the net for a 1-2 to 0-2 Derry lead after 12 minutes.
Tyrone hit back instantly with a move from the kick-out and when Joey Clarke was denied by Armstrong’s save, Sean O’Hare poked the rebound to the net.
Oisin Doherty and Niall O’Donnell pushed Derry ahead before a second Tyrone goal, a rasper from Ruairi McCullagh off the bottom of the crossbar.
Tyrone missed a sitter of a goal when Cassidy pulled wide and it was Ronan Walls on target for Derry to level at the break, 2-3 to 1-6.
In a second half littered with turnovers, Danny McDermott and Conleth McGrogan hit fine scores for Derry.
As the game developed, Eoin McElholm broke to put Tyrone 2-7 to 1-8 ahead with Rory McGill on target for Derry.
McCullagh levelled for Tyrone with the rest of normal time failing to produce a score, sending the decider to extra-time, 2-8 to 1-11.
Rory McGill and Oisin Doherty hit points before Derry hit their second goal. A high ball was punched goalward by Dara McPeake and when Callum Daly clawed the ball off the line, Ryan McNicholl poked to the net for a 2-13 to 2-9 lead at half-time in extra time.
Ruairi McHugh palmed a controversial goal when he appeared to be in the squad with Conor Owen hitting the point to take it to penalties.
Scorers:
Derry: O Doherty 0-4 (3f), R McNicholl, J McGuckian 1-0 each, N O’Donnell, S McCann, R McGill 0-2 each, P McGurk, R Walls and C McGrogan 0-1 each
Tyrone: R McCullagh 1-2 (1f), R Cassidy 0-3 (1f), S O’Hare, R McHugh 1-0 each, E McElholm 0-2, O Brolly, C O’Neill and C Owens 0-1 each
Derry: C Armstrong; F McEldowney, D McDermott, R Small; C McGrogan, P McGurk, R Walls; R Forbes, C Heron, S McCann; C Spiers, N O’Donnell, J McGuckian; C Chambers, O Doherty
Subs: R McNicholl for S McCann (HT), E Higgins for C Spiers (37), R McGill for C Chambers (44), D McPeake for R Walls (56), T Rogers for C Heron (74), S Young for E Higgins (78)
Tyrone: C McAneney; J Clarke, B Hughes, Conor Devlin; C Daly; S O’Hare, M Rafferty, O Brolly; R Fox, C O’Neill; Cormac Devlin, E McElholm, G Potter; R McCullagh, R Cassidy
Subs: F Nelis for Conor Devlin (22), R McHugh for O Brolly (43), P McCann for R Fox (50), N Grimes for R Cassidy (56), C Owens for C O’Neill (HT ET), F Donnelly for M Rafferty (75)
Referee: D Boylan (Monaghan)