Macleod came through the Cardiff Blues system, playing for the U21 side, and made his debut for Cardiff RFC in November 2001 against Cambridge University.[2] Macleod played for Wales U19 in 2002, and Wales U21 in 2004.[3][4] Macleod made his debut for Cardiff Blues on 5 September 2003, against Glasgow, scoring a try.[2][5]
In April 2008, it was announced that Macleod would leave Cardiff to sign for the Sale Sharks on a two-year deal.[7] Macleod departed Cardiff with 82 appearances and scored 240 points.[2]
Macleod began the 2010–11 season as Sale's fly-half in the absence of the team's first choice, Charlie Hodgson; when Hodgson returned in late September he took over the position.[8] In a Challenge Cup match for Sale against Cetransa El Salvador on 8 October 2010, Macleod equalled the club's record for most points scored in a game by a single player. When fly-half Charlie Hodgson, who previously held the record, was rested at half-time Macleod took over goal kicking. With two tries and eight successful conversions, Macleod scored 26 points in the match.[9] The following month, Macleod experienced what he described a "highlight of [his] career so far" when he stepped up to captain Sale in a 24–19 defeat to Exeter. Regular captain Neil Briggs was unavailable due to injury and Macleod filled the position.[10] Hodgson suffered a broken foot in December, ruling him out for several months. In his absence, Macleod took the role of Sale's regular fly-half.[11] Macleod's elevation to the captaincy was temporary and winger Mark Cueto was appointed captain in late December 2010 by new coach Pete Anglesea,[12] who replaced Mike Brewer as Sale had won just three out of nine matches in the 2010–11 season.[13]
Hodgson left at the end of the 2010–11 season and the club chose not to sign a new fly-half. This meant that Macleod would be given a regular chance in the position.[14] He had a successful run, scoring 231 points by mid-February when he signed a two-year extension on his contract.[15] Macleod signed a further extension in November 2013.[16]
MacLeod joined Newport Gwent Dragons for the 2016–17 season and made six appearances before suffering a ligament injury which eventually forced him to retire from professional rugby; he now works as a baker in Cardiff.[17]