MacDonald started his career with St. Johnstone, who he played with for a decade after signing for the youth academy of Rangers. He also spent 18 months with Dundee in the midst of his time at Greenock Morton, as well as one season with Clyde.
'Peaso' joined St. Johnstone in August 2001 when, having received a substantial fee from Celtic for Momo Sylla, manager Sandy Clark was able to pay a fee of £125,000 to Rangers for his services. MacDonald made a promising start when he scored in a 2–2 home draw against Livingston in just his second starting appearance. His time in Perth was dogged by injury, firstly in September 2002 and again just six months later. He next featured in September 2004, and after coming on as a substitute, MacDonald scored two goals in the last six minutes against Partick Thistle to help Saints to a 2–1 win.
MacDonald was awarded a three-year contract extension in February 2005. Again, though, he picked up an injury during the 2005–06 pre-season. He appeared – and scored – in the second competitive match of the season, a 4–0 win over Queen of the South, but returned to the treatment table not long afterwards. It wasn't until 11 February that he next appeared.
In the 2006–07 season, MacDonald was sent off during Saints' 2–2 draw with Ross County in Dingwall on 11 November 2006, just thirteen minutes after coming on as a substitute, for a challenge that gave the visitors a last-minute penalty.
Peaso made a scoring start to the 2008–09 league season when he cracked home the opening goal in the 2–0 win over Livingston but overall the opening months of the season were disappointing for him as he struggled to get a regular place in the starting line-up. Fit again, and as the only player who has remained at the club since relegation seven years ago, he was looking to make an impact at SPL level but it was mid-December before he made a starting appearance in a 1–0 win over St. Mirren. MacDonald became the first player to score a hat-trick in the 2009–10 Scottish Premier League season by scoring three goals against Motherwell on 26 December 2009; MacDonald scored a "perfect" hat-trick of goals, scoring a goal with each foot and his head. He was injured in the act of scoring a goal at Rugby Park in February and his season was over.
However, Peter was given a six-month contract to take him through to the end of 2010 and he worked hard towards full fitness with a reappearance in the first team coming towards the end of October. A contract extension to the end of the 2010–11 season was celebrated with a match winning goal against Hearts in the Scottish Cup at Tynecastle on 11 January.
MacDonald signed for Greenock Morton in July 2011 after a lengthy trial to join his teammate at Saints, Andy Jackson, on the tail of the bank. He won the SFL Ginger Boot (top scorer in all three SFL divisions) for September 2011.
MacDonald signed up for another season at Morton in June 2012. He had to wait until 8 December 2012 to play his first game of the 2012–13 season due to suffering from Plantar fasciitis. Peaso was awarded the SFL Player of the Month award for February 2013. MacDonald's contract at Morton expired in May 2013.
On 5 June 2013, it was announced that MacDonald had signed with recently relegated SPL side Dundee with fellow former Morton full-back Willie Dyer. MacDonald scored his first goal for The Dees in a 5–0 win at Clyde in a pre-season friendly. On the first day of the SPFL Championship, "Peaso" put Dundee ahead against Queen of the South, but they lost the game 4–3 at Palmerston. He then netted twice at Dens in extra time to put Dundee past Forfar in the Ramsdens Cup, then put another past them in the League Cup, a free kick in the dying moments of extra time. The striker scored again when Livingston came to Dens, hit a penalty in against Stenhousemuir in the Ramsdens Cup, then another in a shootout. His next goals came against his former club Morton when he scored twice.
MacDonald was proving to be a key player as Dundee pushed for the top of the league, and scored four goals in three games, twice away to Dumbarton, once more against Queen of the South, then in a 2–1 defeat at Livingston where he also missed a penalty. When Dundee visited Hamilton hoping to reel in the team top of the league, "Peaso" struck with a diving header in the last few minutes after a shot from Martin Boyle had come off the bar to give the Dees a 3–0 win. He rounded off 2013 with a goal against Alloa then another two against Dumbarton. The 33-year-old had to wait until the 1st of March for his next goal in a 2–0 win against his former employers Morton, with new manager Paul Hartley now in charge. He scored again a fortnight later when The Dark Blues visited Livingston, a curling free kick to keep Dundee top of the league in a 2–0 victory.
MacDonald was released by Dundee in January 2015.
MacDonald returned to old club Morton on an 18-month deal on 9 January 2015. He was due to combine playing duties with a coaching role at the club. Unfortunately this failed to transpire but a role with the Weir funded youth Development presented itself and MacDonald was appointed a coach for the under 17s age group. MacDonald was released by Morton in May 2016.
After leaving Greenock Morton, MacDonald signed for Scottish League Two side Clyde in July 2016. Along with Jon-Paul McGovern, MacDonald was appointed co-interim manager of Clyde in March 2017. They held this position until the end of the season, when Clyde advertised for a new first team manager. After the appointment of Jim Chapman as Clyde manager, MacDonald was released by the club.
Shortly after leaving Clyde, MacDonald signed for their league rivals Stirling Albion on 13 June 2017.St Johnstone
Scottish Challenge Cup (1): 2007–08
Scottish First Division (1): 2008–09
Scottish Championship (2): 2013–14
Scottish League One (1): 2014–15
SFL Ginger Boot winner – September 2011
SFL Player of the Month – February 2013