McKenzie's first professional contract was with Albion Rovers after coming up through their youth academy. He signed professionally for them on 26 April 2003, making his debut as a substitute the same day, aged 17, taking part in the 2–1 win over Stirling Albion. The following season, he featured more regularly making 11 appearances. He scored his first goal for the club on 17 August 2004, scoring the winning goal in a 2–1 over Queen of the South in the Scottish League Cup.
Stenhousemuir
On 31 May 2005, McKenzie signed for fellow Scottish Third Division side Stenhousemuir. He made his debut on 30 July 2005, in a 4–0 win over East Fife in the Scottish Challenge Cup with his league debut coming on 6 August against Queen's Park. He spent only half a season at the club, making only 8 appearances scoring no goals.
East Stirlingshire
On 1 March 2006, McKenzie signed for East Stirlingshire. He made his debut on 11 March 2006, in a 2–0 defeat to Montrose, going on to make 10 appearances in his debut season. He scored his first goals for the club on 26 August 2006, netting a hat trick against former club Stenhousemuir. Over the course of 5 seasons he made 144 appearances scoring 8 times.
Cowdenbeath
McKenzie signed for Scottish First Division side Cowdenbeath in the summer of 2010, on a one-year deal. He made his debut on 24 July in the Challenge Cup, with his league debut coming on 7 August in a 2–0 defeat to Ross County. He scored his first goal for the club on 22 August, hitting the net from 25 yards, in a 3–1 defeat to Queen of the South. In all he made 35 appearances in his debut season, scoring twice. Following the club's relegation to the Second Division, he signed an extended contract for the new season. He won promotion back to the First Division at the first attempt in the 2011–12 season. On 23 January 2014, McKenzie signed for East Fife on a contract until the end of the season.
Albion Rovers return
In June 2015, after 18 months with The Wee Rovers,
Elgin City
McKenzie signed for Elgin City on a one-year contract.
Stirling Albion
After one season, McKenzie signed for Scottish League Two rivals Stirling Albion in May 2016, however, he left the club in January 2017 after the club agreed to terminate his contract.
Clyde
On 13 January 2017, McKenzie signed for fellow Scottish League Two side Clyde until the end of the 2016–17 season. He was released by the club in June 2017 following the end of his contract.