Mackie, a product of the Aberdeen youth system, started his professional career with the club in 1998. He also had a brief loan spell at Inverness Caledonian Thistle in 2004.
In January 2004, Mackie moved on loan to Inverness Caledonian Thistle. He made six league appearances for Inverness, but failed to score a goal and returned to Aberdeen at the end of the season.
Return to Aberdeen
He scored 15 goals for Aberdeen in the 2004–05 season – including twelve in the league – which helped his team to a fourth-place finish, but they just missed out on UEFA Cup qualification. On 22 August 2006, Mackie missed a decisive penalty in a shock 5–3 penalty shootout league cup defeat to Third Division side Queen's Park. He finished the 2006–07 season with 13 league goals, including one very bizarre one in a match against Kilmarnock on 28 April 2007. Kilmarnock goalkeeperAlan Combe attempted to throw the ball to one of his teammates, but Mackie, who was walking away from goal, was instead hit on the back of his head by Combe's throw and the ball rebounded over the helpless keeper into the net. Aberdeen finished third in the SPL in the 2006–07 season and therefore qualified for the 2007–08 UEFA Cup first round, where they faced Ukrainian club Dnipro. The first leg of the tie on 20 September 2007 at Pittodrie ended goalless, but in the second-leg, Mackie netted the opening goal, his 50th goal for Aberdeen. He headed in from close range after a pinpoint cross by Ricky Foster. The match ended 1–1 with Andriy Vorobey scoring the equaliser for Dnipro, but Mackie's strike ensured Aberdeen's progress to the group stages of the tournament on away goals and secured a substantial financial windfall for the club. Mackie also scored the only goal of the game against Celtic at Celtic Park in the Scottish Cup quarter-final replay on 18 March 2008. Mackie scored his 50th league goal for Aberdeen on 20 December 2008 in an SPL match against Inverness Caledonian Thistle at the Caledonian Stadium and signed a new three-year contract with the Dons in February 2009. On 19 July 2011, Aberdeen played La Liga side Villarreal at Pittodrie in a testimonial match to mark Mackie's thirteen years with the club. The match ended 1–0 to Villarreal, with striker Giuseppe Rossi scoring the only goal after 53 minutes. Near the end of the 2011–12 season, Mackie was advised that his contract with Aberdeen would not be extended. Mackie played his last game for Aberdeen in a goalless draw against St Mirren on 12 May.
On 27 September 2012, Mackie signed a one-year contract with Phoenix FC of the USL Pro. His time at Phoenix was not a successful one. He was sidelined with a groin injury in the early part of the season. His contract was not renewed and he returned to Scotland after the season ended.
Turriff United
Mackie joined Turriff United in 2013 as a first team player until August 2016.
Inverurie Loco Works
Mackie was announced as a player/coach at the club as of Wednesday, September 1, 2016. In June 2017, he announced that he was leaving both roles at Inverurie Loco Works - citing business commitments.