MacMillan began his career in 1996, icing for the junior team the Oshawa Generals in the OHL. MacMillan stayed with the Generals for three years, making almost 170 appearances in that time. His solid defensive play combined with a reasonable offensive output for a defenceman meant that in the 1999 NHL entry draft, MacMillan was drafted in the seventh round by the Dallas Stars. MacMillan was sent to play for the Fort Wayne Komets in the UHL, where he played just seven games before being moved to the Michigan K-Wings, a Dallas Stars affiliate team playing in the IHL. In the K-Wings' last season as a Stars affiliate, MacMillan featured in 53 games. Due to the Stars ending their association with the K-Wings, MacMillan was then farmed to the Utah Grizzlies again in the IHL. He would stay in Salt Lake City for the next four seasons, and remained playing for the Grizzlies when they changed league to play at the higher AHL standard. MacMillan was a cornerstone of the Grizzlies team, and featured in over 300 games during his stay there. MacMillan's hard work and natural defensive qualities meant that during the 2003/04 season he also featured for the Dallas Stars themselves, and played four regular seasonNHL games. The following season, MacMillan was again relegated back down to the AHL, this time playing for the Hartford Wolf Pack. In his one season playing for Hartford he was again a key player, playing 71 times and clocking up 136 penalty minutes. MacMillan would play one more season in the AHL in 2005/06, for the Syracuse Crunch. For the 2006/07 season, MacMillan decided to play in Europe and signed for the Vienna Capitals in the Austrian national league, but did not stay for the whole season, signing for the Phoenix RoadRunners of the ECHL back in North America, where he also featured in the ECHL playoffs. MacMillan again decided to play in Europe the following year, and in the summer of 2007, along with Capital team-mate Scott Fankhouser, agreed to sign for the Manchester Phoenix, a team playing in the EIHL, the top tier of British club ice hockey, where he was also appointed alternate captain by player/coach Tony Hand. MacMillan proved to be a solid, physical defender for the Phoenix but struggled to find form, suffering a number of injuries through the season. The Manchester defence was notably unreliable during the 2007/08 season and at the end of the season, head coachHand madethe decision to re-model the entire defence, releasing MacMillan. MacMillan and Fankhouser would again choose to sign for the same club, agreeing to play for the Bloomington Prairie Thunder of the United Hockey League, an announcement made in July 2008. Since his professional days, MacMillan has split his time between the Durham Thundercats of the WOAA Senior AA Hockey League and the Dundas Real McCoys of Allan Cup Hockey. He won the Allan Cup with Real McCoys in 2014.