Chris Wall established a new course record at Brookside Country Club with a 9-under-par 63. He took third place at 11-under-par 277, while Brian Unk (67) and Dirk Ayers (68) shared fourth at minus-10.
Compton held a three-shot lead at the start of Sunday's final round and played steady golf on the front nine. He collected two birdies and added another at No. 10, his fourth birdie in as many rounds at the par-5 hole.
He was in command of the tournament at 14 under par but Wall got into the clubhouse at 11 under to put a scare into Compton. Compton missed a 4-footer for par at the 14th and the lead suddenly dropped to two strokes.
Compton reclaimed the lost stroke at the par-5 16th when his second landed 25 feet from the hole but spun closer. He missed the eagle putt but birdied to go ahead by three.
Gallie birdied four holes on the back nine to get within three at the par-3 17th. Compton took an aggressive line at the hole and barely got over the water. He got up and down for par and Gallie also recorded a par to give Compton a three-shot edge on the final hole.
Compton found the fairway at 18, then knocked a 2-iron to 7 feet at the par-5 closing hole. He missed the eagle, but tapped in for birdie and the victory.
'My go-to shot is a cut and it just set up perfectly for that last shot,' said Compton. 'It was about 240 and I just cut a little 2-iron in there and it was perfect.'
This was Compton's second win on the Canadian Tour after a victory last year in Mexico. The next stop is the Nationwide Tour and maybe Monday qualifying for some PGA Tour events.
'I'm playing really well,' said Compton. 'I'm really confident. I'd just like to get a chance to play in some more Nationwide and PGA tour events and play my way on there.'
Gallie shot a 68 on Sunday and earned his highest finish on the Canadian Tour.
Iain Steel (69), Rob Oppenheim (70), Jeff Wood (69) and Wes Martin (71) shared sixth place at 9-under-par 279.
Andrew Smeeth matched Wall's course record about 30 minutes after Wall posted the score. He fired a 63 and tied for 10th with Brad Sutterfield (68) and Rob Johnson (70) at minus-8.