Trailing 0-4 to 0-2 early on, Tyrone bounced back to lead 0-10 to 0-6 after a first half which saw defences on top.
A Sean Cavanagh goal made it 1-13 to 0-9 to the hosts, then Derry had captain Chrissy McKaigue sent-off for a second yellow card offence late in the game.
Aidan McCrory found the net to complete a convincing success for the Red Hands.
For Derry, it was another disappointing defeat following their home loss at the hands of Galway last week.
O'Neill top-scored for Mickey Harte's side with six points, with Cavanagh contributing 1-3 and Richard Donnelly 0-4.
James Kielt landed three points for the Oak Leafers, who also lost to their Ulster rivals in the McKenna Cup final in January.
WEEKEND ALLIANZ FOOTBALL LEAGUE FIXTURES
Saturday - Results
Division 1
Dublin 2-14  2-10 Cork
Division 2
Cavan 3-18  0-10 Armagh
Tyrone 2-15 0-12 Derry
Division 4
Waterford 0-11 0-12 Wexford
Sunday - 14:00 GMT unless stated
Division 1
Roscommon v Down, Pearse Park, Longford
Kerry v Donegal, Tralee, 14:30
Monaghan v Mayo, Clones, 14:30
Division 2
Fermanagh v Laois, Enniskillen
Galway v Meath, Pearse Stadium
Division 3
Tipperary v Offaly, Sean Treacy Park, 12:30
Kildare v Limerick, Newbridge, 13:30
Clare v Westmeath, Ennis
Sligo v Longford, Markievicz Park, 14:30
Division 4
London v Antrim, Ruislip, 13:00
Leitrim v Louth, Carrick-on-Shannon
Wicklow v Carlow, Aughrim, 14:30
Football League Divison Two leaders Tyrone beat Derry by nine points, 2-15 to 0-12, in the Ulster derby at Healy Park to remain unbeaten in 2016.