MacDonald began his junior hockey career in the Quebec Major Junior Hockey League for the 1997–98 season playing for the Halifax Mooseheads. In 17 games, he recorded only three wins, but continued to work on his style and play, impressing the coaching staff in the process[citation needed]. The Ontario Hockey League then came calling the following season and MacDonald began play for the Peterborough Petes as their starting goaltender. MacDonald thrived in his expanded role, finishing with a winning record and a lower goals against average. He remained the Pete's starting goaltender until the 2001–02 season when he joined the Toledo Storm of the ECHL after signing with the Detroit Red Wings as a free agent.
Professional
MacDonald struggled on the weak[citation needed]ECHL team and recorded only 12 wins in his 38 games. The Red Wings sent MacDonald to the Grand Rapids Griffins of the AHL for the 2002–03 AHL season as backup to Marc Lamothe. MacDonald proved to be capable in his new role, finishing with 14 wins and 6 losses in the 25 games he played. The 2003–04 AHL season saw MacDonald splitting time with Lamothe. The Griffins had seen enough and after Lamothe left the following season, MacDonald was named starting goaltender. MacDonald played in 66 games for the Griffins, finishing with a record of 34–29–2 and a save percentage of .926. The 2005–06 AHL season saw an influx of goaltenders into the Red Wings farm system and MacDonald competed to stay near the top. He split time with Drew MacIntyre and new prospect Jimmy Howard. MacDonald finished the season 17–9–2 in 32 games played.
MacDonald was brought up to the NHL for the 2006–07 season when he was named as a backup goaltender to Dominik Hašek and Chris Osgood of the Detroit Red Wings. MacDonald made his NHL debut on October 19, 2006 against the San Jose Sharks. Detroit was down 3–0 when MacDonald came in for Osgood after he let in three power play goals in the first 15 minutes of period one. However, it would take five more games, in which he was the starting goaltender, before MacDonald would get his first NHL win with a 7–4 victory over the Calgary Flames on February 11, 2007.
On February 24, 2007, the Boston Bruins picked up MacDonald on waivers. He played his first game with the Bruins on March 4, 2007 resulting in a 4–1 win over the New Jersey Devils.
On July 8, 2007, MacDonald signed a two-year deal as an unrestricted free agent with the New York Islanders.[2] He was then assigned to affiliate, the Bridgeport Sound Tigers of the AHL.
In the 2008–09 season, MacDonald became the Islanders regular backup goalie. This is due to the departure of the team's previous backup, Wade Dubielewicz, as an UFA and his subsequent signing in Russia. This also had to do with the second year of MacDonald's contract being a one-way deal. Many Islanders fans were apprehensive about this arrangement, feeling that MacDonald may not be ready to be DiPietro's backup on a regular basis- especially since they hoped their starting netminder was going to get more time to rest.[citation needed] That time to rest came earlier than expected as DiPietro started the season recovering from an injury and then went out once again to another injury after two losses. MacDonald finished the season with a 14-26-6 record, to go along with a 3.37 goals against average. A high point of his season was a 2–0 victory against his former team, the Detroit Red Wings at Joe Louis Arena. MacDonald made 42 saves while recording his first career shutout in the NHL.[3]
On August 10, 2009, MacDonald was signed to a one-year contract by the Toronto Maple Leafs.[4] Prior to the 2009–10 season, MacDonald was placed on waivers and was assigned the starting goaltender for the Toronto Marlies of the AHL, on September 29, 2009. On October 8, 2009, MacDonald was called up to the Maple Leafs to back up Vesa Toskala. He would later get his first ever start with the Maple Leafs on October 13, 2009.[5]
On March 3, 2010, MacDonald was traded by the Leafs to the Anaheim Ducks for a seventh round pick. As the Ducks had no AHL affiliate team at the time, MacDonald remained with the Marlies after the trade.[6]
On July 2, 2010, MacDonald returned to Detroit when he signed a one-year two-way contract with the organization.[7] He recorded a 5-5-3 record in 15 appearances with Detroit, including one shutout. He remained with the Red Wings for the final months of the regular season and playoffs as Jimmy Howard's backup due to an injury to Chris Osgood.
MacDonald signed a two-year contract on July 11, 2011[8] with the Red Wings (a two-way deal in the first year and a one-way deal in the second year) over an offer to play in the KHL with Lokomotiv Yaroslavl.[9] MacDonald began the season with the Griffins as the organization's number three goaltender. Following an injury to starter Jimmy Howard and the unsteady play of back-up Ty Conklin, MacDonald was recalled to the Red Wings where he has helped extend the Red Wings NHL-record home winning streak.
MacDonald was put on waivers by the Red Wings on February 10, 2013.[10] He was then claimed off waivers by the Calgary Flames the following day. He was their backup goaltender behind Karri Ramo[11]
MacDonald was signed as a free agent on July 1, 2014 by the Montreal Canadiens to a one-year two-way contract.[12] MacDonald failed to make the Canadiens out of training camp and, after clearing waivers, was assigned to their AHL affiliate, the Hamilton Bulldogs.