MacDonald was elected to the Alberta Legislature in a by-election held on October 26, 1992 in the Three Hills electoral district. The race was hotly contested as MacDonald faced seven other candidates. He ended up winning the district taking 46% of the popular vote.
Months later the writ was dropped for the 1993 Alberta general election. MacDonald ran in the new Airdrie-Three Hills electoral district as his old riding was abolished due to redistribution. MacDonald was defeated by Progressive Conservative candidate Carol Haley by a wide margin.
He ran for a seat under the Social Credit banner in the Olds-Didsbury-Three Hills riding in the 1997 Alberta general election. In that election he finished a strong second to Progressive Conservative candidate Richard Marz.
MacDonald holds the record for the shortest time in Alberta provincial office between election and defeat. He served in office for 7 months and 20 days.