Brentford
On 31 December 2014, Macleod moved to England to sign for Championship club Brentford for an undisclosed fee on a 3+1⁄2-year contract, effective 3 January 2015. The fee was later reported by The Sunday Post to be £850,000, with add-ons raising the amount to up to £1.3 million. Having failed to recover from the hamstring injury suffered in his last match while a Rangers player, Macleod's recovery suffered a setback when he tweaked the hamstring again in training. He finally made his first appearance in a Brentford shirt with 45 minutes in a Development Squad defeat to Nottingham Forest on 28 March 2015, but two weeks later, manager Mark Warburton ruled Macleod out of first team contention for the rest of the 2014–15 season. In an apparent U-turn, Macleod won his maiden first team call-up for Brentford's playoff semi-final first leg versus Middlesbrough on 8 May. He remained an unused substitute during the 2–1 defeat and was replaced on the bench by Chris Long for the second leg, with the ensuing 5–1 aggregate loss ending Brentford's season.
Macleod's rehabilitation away from the first team squad saw him miss the entire 2015–16 pre-season. He returned to the Development Squad in October 2015 and made seven appearances either side of a recurrence of his hamstring injury in mid-November 2015. He finally made his first team debut versus Brighton & Hove Albion on 5 February 2016, when he replaced Josh McEachran after 82 minutes of the 3–0 defeat. Later that month, Macleod suffered a slight medial ligament injury in training and was not included in any further squads during the 2015–16 season.
After returning to fitness for the 2016–17 pre-season, Macleod made his first competitive start for the club on the opening day of the regular season, playing 82 minutes of a 2–1 defeat to Huddersfield Town, before being replaced by Philipp Hofmann. Macleod made 12 further appearances before suffering a serious knee injury during a West London derby versus Queens Park Rangers on 28 October 2016. In December 2016, he signed a one-year contract extension, which would keep him at Griffin Park until the end of the 2018–19 season.
After recovering from the knee injury and then suffering a hamstring problem in October 2017, Macleod made his first appearance for over 13 months as a second-half substitute for Sergi Canós in a 3–1 victory over West London rivals Fulham on 2 December 2017. After just one FA Cup start and sporadic substitute cameos, Macleod made his first league start of the 2017–18 season versus Middlesbrough on 17 March 2018 and scored his first goal for the club with the equaliser in a 1–1 draw. He finished the 2017–18 season with 11 appearances and one goal.
Macleod entered the 2018–19 season fully fit and held down a starting place through much of the first four months of the campaign. After scoring his third goal of the season with an injury time equaliser versus West Bromwich Albion on 3 December 2018, he suffered a hamstring injury. After returning to fitness, Macleod's reluctance to sign a new contract meant that he made just one further appearance before the end of the season. Macleod departed Brentford when his contract expired at the end of the 2018–19 season and he finished his career at Griffin Park with 43 appearances and four goals.