Holmes scored on the opening drive but Leevi Dunaway blocked the extra point attempt.
Mason County led 21-7 at halftime and 28-6 early in the third quarter but Holmes tied the game with 22 straight points.
The Bulldogs had a chance to take lead but the Royals stopped the two-point conversion run with 7:32 left in the game.
Mason County drove to the Holmes seven yard line but missed a 24-yard field goal attempt with 52 seconds remaining.
With the Royals on offense first in overtime, Malkolm Devine scored a touchdown on a six-yard run and Travis Whisman kicked the extra point.
Holmes was facing 3rd down and nine when Jashaun York threw a touchdown pass to Tahj Campbell.
York's conversion pass was incomplete but Mason County was called for pass interference.
York was stopped short on his two-point conversion run and Mason County had its third win of the season.
Devine rushed for 184 yards and three touchdowns.
Holmes running back Seth Hille ran for 182 yards and a touchdown. York rushed for two touchdowns.
Mason County is 3-5 overall and 2-2 in the district.
Holmes is 2-6 overall and 0-3 in district play.
Mason County hosts West Union next week.
H 1st Q 7:42 Jashaun York 2 yard run (kick blocked) H 6, MC 0
MC 1st Q 00:29 Chandler Dunaway 39 yard run (Travis Whisman kick) MC 7, H 6
MC 2nd Q 9:25 Malkolm Devine 60 yard run (Travis Whisman kick) MC 14, H 6
MC 2nd Q 3:11 Seth Chambers 8 yard run (Travis Whisman kick) MC 21, H 6
MC 3rd Q 10:21 Malkolm Devine 35 yard run (Travis Whisman kick) MC 28, H 6
H 3rd Q 9:14 Seth Hille 17 yard run (Seth Hille run) MC 28, H 14
H 3rd Q 2:48 Salih Abdullah 15 yard run (Seth Hille run) MC 28, H 22
H 4th Q 7:32 Jashaun York 1 yard run (run failed) MC 28, H 28
MC OT Malkolm Devine 6 yard run (Travis Whisman kick) MC 35, H 28
H OT Tahj Campbell 9 yard from Jashaun York (run failed) MC 35, H 34