Elliott began his career as a youth player with
Belvedere. and Stella Maris.
Manchester City Elliott began his professional career as a youth player at
Manchester City after impressing in a trial match with
Stella Maris in which he scored five goals in the space of half an hour. His league debut came on 21 February 2004 when
Kevin Keegan used him as a late substitute in a 3–1 win at
Bolton Wanderers. He failed to establish himself in the first team, making only one further appearances as a substitute, with his development at City hampered by a serious back injury that ruled him out for a season. for an initial fee of £125,000, set by a tribunal, with well over £250,000 of additional payments linked to his subsequent performance at the Black Cats of around £100,000 if Sunderland were promoted to the
Premier League; £50,000 if he played in a competitive game for the
Republic of Ireland; five instalments of £20,000 for each set of ten appearances he made for Sunderland up to a maximum of 50 games; and 25% of any sell-on transfer fees. McCarthy later admitted that he had bought him outrageously cheaply, although that was before all of the above add-ons were ultimately realised. with his first goal for the club coming on 10 August against
Crewe Alexandra, scoring the winner in their 3–1 win. He quickly established himself as first-team regular, making 47 appearances scoring 16 goals in his debut season as the team finished as champions in 2005, helping him win the clubs young player of the season award. However, his first Premiership season was largely disrupted by injury, although prior to his injuries he scored two long-range goals against
Manchester United and
Newcastle United. On
Sunderland's return to the
Championship the following season, he showed good form when fit, but again was disrupted by an ankle injury which kept him out for two months. In all he made 88 appearances for Sunderland scoring 23 goals.
Wolverhampton Wanderers Elliott moved to
Wolves in July 2007 for an undisclosed fee signing a three-year contract, linking up with
Mick McCarthy, his former manager at Sunderland. He made his debut on 11 August 2007 in their 2–1 defeat to
Watford, going on to score his first goal for the club on 15 September scoring the opening goal against
Sheffield United. However, he failed to make a strong impact at
Molineux, and was transfer-listed at the season's end after the club missed out on the play-offs on goal difference. He made one more appearance for Wolves the following season in the
League Cup against
Rotherham. In all he made 32 appearances for Wolves scoring six times. He made his debut as a substitute on 16 September against
Nottingham Forest, and scored his first goal for the club on 18 October 2008 against
Reading, with the winning goal in their 2–1 win. He scored a brace against his former team
Wolves at
Molineux in their 3–1 win in January. He was to form a partnership with
Jon Parkin in Preston's attack. In his debut season he made 39 appearances scoring six times. The following season he made 13 appearances scoring twice before falling out of favour and in March 2010 he joined Norwich on loan. On his return on 7 August he negotiated an early release from his Preston contract.
Norwich City On 6 March 2010, Elliot signed on an emergency loan deal with
Norwich City until the end of the season and was given the number 11 shirt. He made his debut on 6 March 2010 against
Yeovil in
League One, scoring his first goals for the club the following week, scoring a brace against Huddersfield in their 3–1 win. In all he made ten appearances scoring twice. reuniting him with former strike partner at Sunderland
Kevin Kyle. He made his debut as a 66th-minute substitute on 14 August against
St Johnstone at
Tynecastle, going on to make his first start on 7 November against rivals Hibernian in the first Edinburgh Derby of the season scoring the second goal in a 2–0 victory for Hearts. He scored his first home goal for the club on 10 December to make the score 3–0 in a 5–0 victory against
Aberdeen. Despite a hamstring injury that put him out for a month, he made 31 appearances scoring eight goals in his debut season. Elliott become renowned for his crucial goals away from home. Of his eight goals for Hearts in his debut season, seven came away from home and at
Kilmarnock in a 2–1 victory, the latter coming after Elliott had come off the substitutes bench for the second half to reverse a 1–0 deficit. Elliott scored an equalising goal in the 83rd minute of the third Edinburgh derby of the season, earning Hearts a 2–2 draw despite having played for over an hour with ten men. He made his European debut on 28 July 2011 in a
Europa League qualifier against
Paksi. Elliott helped Hearts win the
2011–12 Scottish Cup; he started in the
2012 Scottish Cup Final, which Hearts won 5–1 against Hibernian. Days later, Hearts announced that Elliott's contract would not be renewed due to financial problems within the club.
Coventry City On 2 July 2012, Elliott joined
Football League One side
Coventry City on a one-year deal after his
Heart of Midlothian contract had expired. He scored three goals up to the new year, against
Sheffield United and scored two against
MK Dons at
Stadium MK which Coventry won 3–2 after going behind. Coventry manager
Steven Pressley announced on 30 April 2013 that Elliott's contract would not be renewed having picked up a serious knee injury.
Carlisle United On 7 August 2014, Elliott signed a one-year deal with recently relegated
Football League Two side
Carlisle United.
Return to Ireland In April 2016, Elliott trained with
League of Ireland Premier Division club
Shamrock Rovers before signing for Dublin
First Division side
Shelbourne. On 11 August 2016, Shelbourne announced Stephen had left by mutual consent. Elliott signed for newly promoted Premier Division side
Drogheda United for the 2017 season but he really struggled to find any long term fitness due to injuries and he could not help them from finishing bottom of the league and being relegated.
Morpeth Town Elliott signed for
Northern League Division One outfit
Morpeth Town in November 2017. He retired at the end of the season. ==International career==