Stewart signed for Bristol Rovers in 1991, where he played as a regular striker until 1996 when he signed for Huddersfield Town, the team that had beaten Bristol Rovers in the play-off final the season before. He was a great fan favourite at Huddersfield before being controversially sold to rivals Ipswich Town in the final run in at the end of the 1999–2000 season. Ipswich were promoted to the Premier League at the end of the season ahead of Huddersfield due in no small part to Stewart's goals, with two crucially coming in the 2–2 draw at Bolton Wanderers in the Play-off semi-final away leg, and he then scored another in the Play-off Final itself. He continued his great form for the next season being the Premier League's second top goalscorer during 2000–01 with 19 goals for Ipswich, who finished fifth and qualified for the UEFA Cup and leading for many fans to call for him to be included in the England team. The following season saw Ipswich suffer a fall from grace that resulted in relegation, and although Stewart only notched up six league goals, he was still the team's OPTA player of the year for the second successive year. Following Ipswich's fall from the Premier League, Stewart signed for Sunderland where he had three successful seasons. He played his last game for Sunderland on 8 May 2005, after a successful last season for the club which saw him score 17 goals. He departed Sunderland in good terms after deciding that he was too old to play to a Premiership standard. He chose to sign for Bristol City, fulfilling his ambition to play for the team which he has supported since he was a boy despite beginning his career with City's neighbours and rivals Bristol Rovers. In March 2006, Stewart moved on-loan to Preston North End until the end of the 2005–06 season. After his return to Bristol he was publicly told by City's manager and chairman that he should seek another club, though he was not formally transfer-listed. In August 2006 he signed for Yeovil Town on a 3-month loan and scored a goal on his debut away at Swansea City. He signed a permanent deal with Yeovil in January 2007. Stewart signed a deal with newly promoted League Two side Exeter City on 14 July 2008. In February 2009 he was a shock contender to fill the vacant manager's position at Yeovil Town, possibly teaming up with ex-Carlisle United boss John Ward. Stewart finished the 2008/2009 season scoring 7 goals for Exeter, taking his career tally to 249 goals, one short of 250. After Exeter's promotion to league one in May 2009, Stewart decided to hold his retirement plans and sign a new one-year deal with the club. He scored his 250th career goal in the League One game at Carlisle United on 22 August 2009. Stewart retired from professional football in April 2011, his final appearance being as a substitute for Exeter in a 2–0 win against the first club of his career, Bristol Rovers.
Coaching career
Stewart, already has been involved in some coaching duties as a senior player/coach role in his final two years at Exeter City. After retiring from his playing career, he worked full-time as a first team coach for Exeter. In July 2012 he joined former club Bristol Rovers as a development coach. In 2013 Stewart was made assistant manager at Bristol Rovers. He left the club by mutual consent in December 2018 along with then manager Darrell Clarke. On 20 May 2019, Stewart re-united with Clarke by joining Walsall as assistant manager.