A member of Rangers under-19 squad McCabe scored in the Youth Cup Final in April 2011 in what was ultimately a 2–1 defeat to Celtic. In July 2011 he made his first team debut as a substitute in a friendly against Blackpool, going on to make subsequent appearances in friendlies against Liverpool and Hamburg. He signed a contract extension in December 2011 extending his stay with the club to 2015. Having been an unused substitute in nine previous fixtures that season, he made his Scottish Premier League debut on 3 March 2012, playing the full 90 minutes in a 2–1 defeat to Hearts. On 25 March he made his Old Firm debut in a 3–2 win over Celtic.
Sheffield Wednesday
McCabe declined to have his contract transferred to the new company set up by Charles Green. PFA Scotland noted that players were entitled to become free agents if they objected to the transfer. He then signed a three-year contract with Sheffield Wednesday. On 11 October 2012 Sheffield Wednesday agreed an undisclosed settlement with Rangers. His first goal for Sheffield Wednesday was an edge of the box screamer from a corner against Charlton Athletic on 22 December 2012. The goal was subsequently voted goal of the day on Sky Sports News. On 17 March 2014, McCabe joined League Two side Portsmouth on loan for the rest of the 2013–14 season. He was recalled early from his loan spell by The Owls on 24 April 2014. McCabe was released along with 10 other players from his contract at the end of the 2014–15 season.
Dunfermline Athletic
After his release, McCabe was reported as having attracted the interest of a number of clubs in his native Scotland. Following trials with St Johnstone and Hibernian, McCabe signed for Scottish League One side Dunfermline Athletic in September 2015 making his debut as a first half substitute in a 5–0 victory against Stenhousemuir, one day after signing for the club as. His first goal for the Pars came against Albion Rovers, after an error from Rovers keeper Ross M. Stewart saw McCabe's long-range effort punched into the goal.
On 23 January 2019, it was announced that McCabe had signed for St Patrick's Athletic alongside Chris Forrester who signed from Aberdeen. It was announced on 6 November 2019 that McCabe was released, following the end of his contract with the Saints which whom he played for 27 times over the season, scoring once.