The Tyrone champions met stiff resistance as they tried to play their way out of the danger zone, and they went further behind when Christopher Bradley skipped past two tackles to squeeze over a delightful score from a tight angle.
Omagh made the most of rare attacking opportunities, getting their opening score in the 15th minute through Conor O’Donnell, and following up with another from full-back Hugh Gallagher.
And they narrowed the gap to a single point when Conan Grugan slotted over a 23rd minute free.
Full-back Brendan Rogers tried to inject some momentum into the Emmets’ approach with surging runs from deep, but it was difficult to break down a heavily fortified Omagh rearguard.
And they went 15 minutes without a score, before Christopher Bradley fired over a free.
But a worrying tally of ten wides threatened to demand a price of the home side as Omagh went level through Conor Clarke, before Se McGuigan, spurning a goal chance, sent over the point that sent Mickey Moran’s side in with a 0-6 to 0-5 interval lead.
Shane McGuigan steadied Slaughtneil nerves by slotting over a couple of frees early in the second half, and as Padraig Cassidy ran strongly at the Omagh defence, Joe McMahon intervened with a vital interception.
The Derry men suffered a huge blow in the 42nd minute when they lost Chrissy McKaigue to a black card, but they regrouped almost seamlessly, and conceded just two points in the remainder of the game.
It was verging on desperation at times, but the Oak Leafers held fast at the back, with Brendan Rogers and Meehaul McGrath producing heroics, while Padraig Cassidy took the fight to the Stt Enda’s with his strong running through the middle.
Ronan O’Neill narrowed the gap to a single point, but Christopher Bradley and Shane McGuigan held their nerve to steer over the crucial frees that carried the holders through to the last four.
Slaughtneil: A McMullan; P McNeill, B Rodgers, K McKaigue; F McEldowney, C McKaigue, K Feeney; Patsy Bradley, P McGuigan; Shane McGuigan (0-04, 4f), P Cassidy (0-01), M McGrath; C O’Doherty, Se McGuigan (0-01), C Bradley (0-04, 2f).
Subs: B McGuigan for C McKaigue (42, BC), R Bradley for P McGuigan (44), B Cassidy for R Bradley (59)
Omagh: N McGinn; G Murray, H Gallagher (0-01), S Mullan; C McLaughlin (0-01), J McMahon (0-01,f), B Tierney; C Clarke (0-01), M Gallagher; T Gallagher, C Grugan (0-01, f), R O’Neill (0-01, f); C O’Neill, C O’Donnell (0-02), C Meyler.
Subs: J McAnulla for T Gallagher (39), Justin McMahon for Clarke (49), A Grugan for C O’Neill (54),
Referee: N Mooney (Cavan).