Omagh held off a second-half fightback from St Eunan's to secure victory in the Ulster Club SFC semi-final.
The Tyrone side dominated the first half at Celtic Park and Barry Tierney's goal helped Omagh into a 1-5 to 0-5 lead at the break.
St Eunan's improved in the second half and they closed the gap to one point after Conor Morrison slotted over.
Conor McMahon fired over two vital points for Omagh, who had Conan Grugan sent-off in added time.
Ronan O'Neill's double gave Omagh an early lead but Cillian Morrison, who plays soccer for Cork City, repeated the feat to edge the Donegal champions ahead.
Conor McMahon levelled as Omagh took a grip of affairs and Sean Patton made a great save to deny Cormac O'Neill a goal.
Patton came to his side's rescue again to keep out a Tierney effort but the defender made no mistake minutes later as he fired into the net.
St Eunan's kept in touch through scores from Rory Carr and Connall Dunne while Ronan O'Neill tagged on his third point seconds before the break.
Jason McAnulla extended Omagh's lead on the restart and a goal-line block from Darragh Mulgrew denied Omagh a second goal.
The loss of influential inter-county star Joe McMahon to injury halted Omagh's momentum and St Eunan's capitalised with three points without reply.
Rory Kavanagh and Sean McVeigh were on target before Conor Morrison made it a one-point game.
Conor Mahon showed composure to move Omagh three in front although Cillian Morrison wasted a late goal chance when he shot wide.
Omagh's Coalan Ward was black-carded before team-mate Grugan was dismissed for two yellow cards deep into injury-time.
"It's a fairytale at the minute but nothing's won at this stage," said Conor McMahon.
"We didn't perform in the second half although we showed our character to come through.
"It will be a big test in the final and we have a lot to work on before we take on Slaughtneil."