Born in Glasgow, Stewart played youth football with Celtic and Partick Thistle, and spent his early senior career with Falkirk, where he started his professional football career. In the 2006–07 season, Stewart made one appearance as a substitute in Falkirk's 5–0 Scottish League Cup victory over Cowdenbeath, scoring within two minutes of his professional debut. Ahead of the 2007–08 season, Stewart, along with Brian Allison, Scott Arfield and Chris Mitchell impressed manager John Hughes in a pre-season friendly. In early November 2007, Stewart joined Scottish Third Division side Stranraer on a five-week loan. Stewart made eight appearance, scoring six times. Upon his return to Falkirk, Stewart remained on the substitute bench until on 16 February 2008 when he made his debut, coming on as a substitute on 83rd minutes for Carl Finnigan, in a 4–0 win over St Mirren. Shortly making his league debut for Falkirk, Stewart continued to remain on the substitute bench towards the end of the season and made two more appearance. The following season proved to be Stewart's breakthrough. He scored in the second round of the Scottish League Cup in a 3–1 win over Raith Rovers. Stewart then scored his first league goal in a 2–1 loss to Inverness CT. He continued to play in 26 further games during the season, often playing out of position, scoring once more in the return fixture against Inverness on 21 March 2009 in a 4–0 win. The 2009–10 season started with Stewart signing a new one-year contract. Upon signing, new manager Eddie May said he wanted Stewart to make an impact ahead of the new season. Stewart was expected to make his Europa League debut against Vaduz in July 2009, but a groin injury prevented him from doing so; eventually, Falkirk were eliminated after losing 2–0 in the second leg. Stewart scored his first goal of the season in a 3–3 draw against Celtic on 9 November 2009. A few weeks later, Stewart soon suffered a groin injury and was unable to play until late January 2010. He scored his second goal of the season on 27 March 2010 in a 3–1 loss to Hibernian. Towards the end of the season, Falkirk were relegated to the Scottish First Division after a draw with Kilmarnock. After relegation, the club was able to rebuild the squad. Stewart soon become a key player and the club's primary striker. At the end of the 2010–11 season, Stewart was the club's top scorer with 17 goals, but the club was unable to bounce back to the Scottish Premier League. Stewart was also the division's joint-top scorer with fifteen league goals. During the season, Stewart would score four braces, including in a 4–3 win over Hearts in the last 16 of Scottish League Cup on 21 September 2010.
With his Falkirk contract at an end, Stewart signed for English League Two club Bradford City on 1 July 2011, alongside Chris Mitchell. Shortly after the move, Falkirk announced their intention to claim a training and development compensation fee for Stewart, who was under the age of 24, from Bradford. The fee would not be finalised until two years later, and was set by an international FIFA tribunal. Bradford paid Falkirk £213,000. Stewart made his debut for Bradford on the opening game of the season, in a 2–1 loss against Aldershot Town. Three days later, in the first round of the League Cup in a West Yorkshire derby with Leeds United, Stewart provided an assist for Jack Compton in a 3–2 loss. By this point, Stewart had made fourteen appearances for Bradford. He returned to Scotland on 27 January 2012, signing a loan deal with Scottish First Division side Hamilton Academical. He made his debut on 14 February 2012 in a 2–1 loss to Morton A month later, on 20 March 2012, Stewart scored his first goal since his return to Scotland in a 3–1 win over Dundee. After the match, Stewart stated that scoring his first goal for the club was a "relief". He was released by Bradford upon his return to the club in the summer.
Dundee
On 2 August 2012, he signed for Scottish Premier League side Dundee after impressing on trial. Two days later he made his debut on the opening game of the season, in a 0–0 draw against Kilmarnock. Soon after, Stewart suffered an injury that kept him out for three months. In mid-December, Stewart made a return from injury and, a week later, scored his first goal in a 3–1 loss to Aberdeen. In late February, Stewart scored again in a 2–2 draw against St Johnstone. In total he made 17 appearances, scoring three goals, throughout the 2012–13 season as Dundee were relegated to the Scottish First Division. Stewart was released by the club in June 2013. In July 2013, Stewart joined English Conference National side Luton Town on trial.
Kilmarnock
In August 2013, Stewart signed for Kilmarnock on the morning of their tie against St Mirren in which he made his debut as a 63rd-minute substitute. However, Stewart made only four appearance at Kilmarnock due to fractured his jaw in a training ground collision. While on the sideline, Stewart says he received a hard time after broken his jaw. After five months at the club, Stewart was released
After Raith Rovers' relegation to Scottish League One, Stewart signed a two-year deal with Scottish Championship club Dumbarton on 14 June 2017. Stewart scored his first league goal for the Sons in a 2–1 victory against Brechin City in September 2017, having come on as a half-time substitute. He left the club following their relegation to Scottish League One in June 2018 after having the second year of his contract cancelled.
Later career
After leaving Dumbarton Stewart joined Scottish League Two club Stirling Albion on a two-year deal. He left the club in February 2019 after making just 13 appearances, before returning to Scottish League One side Stranraer in June 2019. Stewart left Stranraer in December 2019.