The knock of 103 at Raeburn Place was a boost for MacLeod, who had been struggling to find form for both Durham and his country over the past year.
It paved the way for the comfortable seven-wicket win, which also featured a patient 80 not out from captain Preston Mommsen.
Needing 229, the Scots cruised to the target with 14 balls to spare.
MacLeod’s innings lasted 122 deliveries and included three sixes and six fours. His match-clinching stand with Mommsen was worth 165, the skipper safely finishing the job.
The Scots had made a jittery start to their chase, losing Craig Wallace to the first ball of the third over. Kyle Coetzer then perished for 25 after putting on 28 with MacLeod.
MacLeod and Mommsen steadied the ship in watchful fashion, refusing to take unnecessary risks.
MacLeod completed his century in the 43rd over but his vigil came to an end in the next over when he was undone by a Mohammed Naveed yorker that smashed into the base of his leg-stump.
His exit left the stage clear for Richie Berrington to carry on the positive work with Mommsen.
Earlier, Safyaan Sharif and Chris Sole led the bowling charge with three wickets apiece, though Con Le Lange emerged as the pick of the attack, bagging two for 42 from his tidy ten-over stint.