Michael Lawton opened Dungannon's account with a penalty after twenty minutes but Cahill restored Bruff's eight point advantage with forty five metre penalty.
Dungannon's skipper Paul Magee got in for a try which Lawton converted to leave it 11-10 at half time in favour of the Limerick side.
Bruff made a great start to the second half when player coach Peter Malone got in for a try which Cahill converted.
Cahill extended Bruff's advantage with another long range penalty to make it 21-10.
Dungannon hit back again with a Lawton penalty and a try by full-back Conor Gaston after great work by Paddy Jackson.
Cahill kicked his fourth penalty and the Munster Cup holders had to withstand a late rally as Dungannon went in search of a match winning score.
Scorers Bruff: David Horan, Peter Malone tries, Tony Cahill 4 pens, con
Dungannon: Paul Magee, Conor Gaston tries, Michael Lawton 2 pens, con.
Bruff: Brendan Deady; Tom O'Callaghan, Tom Carroll, Eoin Cahill, John Malone: Tony Cahill, Eoghan Maher; David Horan, Cathal O'Regan (capt), Gearoid Ryan, Alfie Laffan, Maurice O'Connell, Alan Bourke, John Shine, Peter Malone.Replacements: Dermot Murnane for Laffan (63 mins), Ger Collins for Ryan (74).
Dungannon: Conor Gaston; Michael Lawton, Paul Magee (capt), Glen Telford, Chris Cochrane; Paddy Jackson, Michael Kirkwood; Phil Whyte, Adam Duhig, Glen Sinnamon, Aaron Fry, Michael Rainey, Thomas Anderson, Rowan Halsall, Ali Birch. Replacements: Callum Threlfall for Rainey (48 mins), Mark Farquhar for Whyte (57), Kieran Campbell for Kirkwood (63), Stuart McKenzie for Fry (74).
Referee: John Carvill (IRFU)