Arsenal Born in
Dublin, He made his first-team debut as a
substitute in a
League Cup tie against
Sunderland on 25 October 2005, coming on for
Arturo Lupoli in the 88th minute of a 3–0 win. He trained with Sunderland with a view to a loan move in July 2006, but Sunderland manager
Niall Quinn decided against it due to Sunderland's large squad depth and lack of a reserve team.
Falkirk (loan) Arsenal agreed a loan deal with
Falkirk that saw Stokes play for the
Scottish Premier League (SPL) side until the end of 2006. Stokes scored his first goal for Falkirk in a 1–0 victory at
Inverness Caledonian Thistle on 19 September 2006 in the
Scottish League Cup. He followed that up on 21 October with two more goals against Inverness. On 28 October, he scored his first competitive
hat-trick during Falkirk's 5–1 victory over
Dundee United. Stokes then scored another hat-trick in the following match against
Dunfermline Athletic, which meant that he had scored nine goals in just four games. Having become the first player to score hat-tricks in successive SPL games, Stokes then hit a third in what proved to be his last game for Falkirk, a 3–1 home victory over Inverness CT on 30 December. On 7 November, Stokes scored an equaliser for Falkirk in extra time in a League Cup match against
Celtic; Falkirk advanced 5–4 on penalties. His continuing good form saw him named Young Player of the Month for October and November. By the end of his loan spell, Stokes had scored 16 goals in 18 league and cup appearances. Stokes was originally handed the 26 shirt at Sunderland, but after the departure of
Jon Stead to
Sheffield United he was given the number 9 shirt. Stokes made his Sunderland debut a few days later, and crossed to set up
David Connolly to give Sunderland a one-goal win over
Ipswich. Stokes scored his first goal for Sunderland on 10 February 2007 against
Plymouth Argyle, scoring from 20 yards after coming on as a substitute. Stokes was barred from The Glass Spider
nightclub in
Sunderland, after Keane blamed it for distracting Stokes from his training. Stokes then scored his first Premier League goal; a last-minute winner against
Derby County that took Sunderland out of the relegation zone. Before the start of the 2008–09 season, Stokes lost the Sunderland number 9 shirt and was handed the squad number 44 instead. On 23 September 2008, Stokes scored two late goals to level a
League Cup tie against
Northampton Town.
Sheffield United (loan) On 17 October 2008, Stokes agreed a three-month loan deal to Sheffield United, with the possibility of extending it for the season. Stokes again took the shirt that was previously vacated by
Jon Stead, this time number 8. Stokes made his debut for the
Blades in the local derby against
Sheffield Wednesday a few days later, coming on as a second-half substitute. Stokes started his time at
Bramall Lane as a first team regular but was soon dropped to the bench and returned to Sunderland having made 12 appearances but failed to score a goal.
Crystal Palace (loan) In March 2009, Stokes joined
Crystal Palace on loan, scoring from a solo effort after his first start against
Preston North End. This was his only goal for Palace, however, and he returned to Sunderland at the end of the loan spell.
Hibernian Stokes joined
Hibernian for an undisclosed fee, reported by the
Evening Chronicle to be around £500,000, in August 2009. This meant that he linked up again with
John Hughes, who had been his manager during his loan spell at
Falkirk. He scored his first goals for Hibs in a 3–0 win at home to
St Johnstone on 19 September. At the same time, Stokes made newspaper headlines for a
nightclub altercation, which prompted Hughes to discipline him and to say that he felt "let down" by Stokes. In December, however, Stokes scored five goals in three games, which helped to extend Hibs' unbeaten run in the SPL to 12 games. On 27 December 2009, Stokes scored the fastest goal in
Scottish Premier League history, after just 12.4 seconds against
Rangers. It broke the previous record of 17 seconds set by
Saulius Mikoliūnas in a match between
Hearts and
St Mirren on 2 December 2006. Stokes' goal was the only highlight for Hibs, however, as they lost 4–1 to the league leaders. His good run of form was rewarded with the
SPL young player of the month award for December 2009. Stokes continued to score on a prolific basis throughout the 2009–10 season, although Hughes expressed a desire to improve his all-round game. Stokes won the
goal of the season award from the SPL for a goal against Rangers in November 2009. At the start of the following season, Stokes acknowledged the need to improve other aspects of his play. He was then linked with a move to
Celtic, with their manager
Neil Lennon commenting that Stokes was "a player we like".
The Scotsman reported that Hibs rejected an initial offer from Celtic, but Hibs then accepted a second offer a few days later.
Celtic 2010–11 against
St Mirren, November 2010 On 31 August 2010, Stokes signed a four-year contract with
Celtic. Stokes made his Celtic debut on 11 September 2010, in a 3–0 win against
Hearts. He scored his first goal for the club in his second appearance on 19 September, the winning goal in a 2–1 victory against
Kilmarnock. Stokes scored a brace in a
League Cup tie, against
Inverness Caledonian Thistle in a 6–0 win, and another double in the quarter-final against
St Johnstone in a 3–2 win. On 6 November, Stokes recorded his first hat-trick for Celtic in an
SPL record 9–0 victory over
Aberdeen. After scoring a hat-trick, Stokes says he dedicated the goal to Celtic legend
Henrik Larsson. Another former Celtic striker,
Chris Sutton, highlighted the successful link up play between Stokes and teammate
Gary Hooper, stating: "Their link-up play is good and in that respect having both of these guys in the side is a huge positive for Celtic and it is encouraging." After scoring a 90th-minute penalty in 1–1 draw at
New Douglas Park with
Hamilton on 12 January 2011, Stokes entered a rich vein of form, scoring another penalty and an over-the-shoulder volley in a 3–0 win at
Easter Road against
Hibernian three days later. He rounded the goalkeeper and scored the winner in a 1–0 home win against Aberdeen the following week. He scored from a free-kick and a tap-in from a good refereeing advantage in a 4–0 home thrashing of Hearts on 26 January and kept his cool from the spot and scored another penalty in a 4–1 win at
Hampden Park in the semi-final of the League Cup against Aberdeen.
2011–12 On 24 July 2011, Stokes scored in Celtic's first match of the
2011–12 season, a 2–0 win over
Hibernian. Before the
League Cup final, Stokes said how he felt he was unlikely to start the match. Despite having a very good scoring record with 20 goals for the season, Stokes did not start and came on as a substitute with Celtic trailing 1–0. He went down in the box after a challenge late in the match. However, referee
Willie Collum booked him for diving. After the match both Lennon and captain
Scott Brown were critical of the referee, saying that decision cost Celtic the trophy and that it was a clear penalty. After Celtic's 2–1 defeat to Hearts in the
Scottish Cup semi-final, Stokes was given a one-match ban for the competition following an "A5" incident at the end of the match. On 3 May, Stokes scored the only goal as Celtic beat
St Johnstone 1–0.
2012–13 Stokes made his first appearance of the 2012–13 season as a substitute in the Champions League qualifier against
HJK Helsinki. Stokes then started the next game against
Aberdeen. Stokes then picked up an injury which kept him out of action for five months until January 2013, when he returned as a sub in a league game against
Dundee United. In December 2012, Stokes was disciplined by Celtic after he had attended a benefit event for Alan Ryan, a deceased member of the
Real Irish Republican Army. Stokes scored his first goal of the 2012–13 season against
Kilmarnock on 30 January,
2013–14 Stokes scored his 50th goal for Celtic with a late free kick to beat
Dundee United on 31 August 2013; Dundee United manager
Jackie McNamara complained afterwards that Stokes had moved the ball back from its correct position to make it easier for him to strike it over the wall. He signed a new three-year contract with Celtic in October. On 5 January 2014, Stokes passed another milestone when he scored his 100th competitive career goal, scoring Celtic's second goal in a 4–0 win away at
St Mirren. Stokes, however, had a relatively poor season up that point. In 30 appearances for Celtic, he had scored only seven goals. However, the arrival of
Leigh Griffiths during the January transfer window saw an improvement in Stokes' form and goal ratio, with the pair forming an impressive partnership up front. Stokes was sent off against
Motherwell on 18 January for a late tackle on
Keith Lasley, but on his return from suspension scored seven goals in nine games, and the second of which was a superb volley from 12 yards into the top corner of the goal. Stokes scored another hat-trick on 27 April in a home league match against
Inverness Caledonian Thistle, and also provided an assist for Griffiths in a 6–0 win. A week later, Stokes scored his 20th goal of the season in a home league 5–2 win over Aberdeen.
2014–15 Stokes scored a goal in each of Celtic's first two league games of the season, 3–0 and 6–1 wins over
St Johnstone and
Dundee United respectively. However over the course of the season Stokes scored fewer goals than in previous seasons, mainly due to new manager
Ronny Deila fielding him in a wide left role as opposed to his more recognised position as a striker. Stokes' form at this time was often unimpressive, drawing criticism from supporters, and he was also disciplined by the club after he returned to Celtic late from a trip to his home city of Dublin. He commented after the final, "I do need to show that I can still bring something to the team and I thought I did that today. I felt fresher and sharper. I thought I contributed."
2015–16 In the week leading up to Celtic's opening league match of the season on 1 August 2015, Stokes was told by Celtic manager Ronny Deila that he was no longer part of his long-term plans for the side. By October he had made only two first team appearances, and in most games failed to even make the substitutes bench, with Deila again highlighting issues with his discipline. On failing to again even make the substitutes bench for a league match away at Inverness on 29 November, Stokes expressed his frustration in posts made on
Twitter. These
tweets resulted in Celtic suspending Stokes for two weeks, with Deila describing him as having a "lack of respect". The
transfer window in January 2016 saw Stokes linked with loan moves to
Hibernian and
Inverness Caledonian Thistle, having not taken part in a first team game since 22 August 2015.
Hibernian (loan) On 15 January 2016, it was reported that Stokes had agreed to join
Hibernian on loan for the rest of the season. He scored a late goal on his return to Hibs in a 3–1 win over
St Mirren. At the end of the season, Stokes scored two goals in the
2016 Scottish Cup final and was named
man of the match as Hibs won 3–2 against Rangers, their first win in the competition in 114 years.
Blackburn Rovers On 17 June 2016, Stokes signed for
Blackburn Rovers on a three-year deal. On 6 August, he scored on his Blackburn debut in a 4–1 loss to
Norwich City, and followed it up with two goals in the
EFL Cup first round against
Mansfield Town. In July 2017, Blackburn and Stokes agreed to terminate their contract.
Hibernian (third spell) Stokes signed a two-year contract with
Hibernian in August 2017. He scored a double in his first start for the club against
Ayr United in the
Scottish League Cup on 8 August 2017. Stokes scored 11 goals in 21 games during his third spell with Hibs, but he was dropped from the first team squad in January 2018 for breaching team disciplinary rules.
Apollon Smyrnis On 7 February 2018, days before the end of the Greek transfer window for unattached players, Stokes signed with
Super League side Apollon Smyrni, on an 18-month deal. It did not take long for Stokes to get into trouble again; he went missing from training for a week in April 2018, with the club announcing in a statement that "we are looking if we can legally terminate his contract."
Tractor in August 2018 It was reported on 20 June 2018 that Stokes was once again a
free agent, and that he was back in Scotland training with
St Mirren. However, in July 2018, he signed a two-year contract with
Tractor of the
Persian Gulf Pro League. He scored on his debut, netting in a 1–1 draw with
Nassaji on 3 August. On 28 September, he scored four goals in a 6–0 win over
Esteghlal Khuzestan. On 25 October 2018, having scored ten goals in nine games, Stokes extended his contract with Tractor until 20 June 2022. He did return later in the month, but then a week before the mid-season break he left again for Dublin for the same personal reasons, and was not expected to come back. These "personal reasons" were later revealed to be a major problem with his family and his former girlfriend. The club offered to help him with the issue by allowing his mother, father and sister to live with him in
Tabriz. This failed to persuade Stokes to return, however, and Tractor reported him to the legal department of
FIFA with a view to terminating his contract. In January, after a meeting in England with interim coach
Mohammad Taghavi, Stokes decided to come back and play until the end of the season. In July 2019, it was reported that he had signed a contract with Turkish side
Adana Demirspor, yet still had a running contract with Tractor with 103 days (and counting) of unjustified absence. Later, Tractor informed the Turkish side about the illegality of signing Stokes to a contract, without acquiring the consent of his current club and warned they could sue them and the player.
Adana Demirspor On 16 July 2019, Stokes signed for
TFF First League club
Adana Demirspor on a two-year contract, with the option of a third. However, on 27 November, the club announced on their
Twitter that his contract was terminated by the club, after only making six appearances and scoring one goal.
Persepolis . On 25 January 2020, Stokes signed a six-month contract with
Persian Gulf Pro League champions
Persepolis. Stokes chose number 10, but according to the rules, a number in a competition belongs to only one person, and as
Farshad Ahmadzadeh wore number 10 in the
Persian Gulf Pro League and in the
Iranian Hazfi Cup, Stokes chose number 32 until the end of the season, and number 10 from the beginning of the
2020 AFC Champions League. Following Persepolis' match against
Sharjah on 18 February, he obtained permission to stay in
United Arab Emirates for one more day to visit his son. After remaining in UAE for longer that he was permitted, he announced that he did not intend to return to Iran due to the
coronavirus pandemic there which led to him being fined by his club. On 4 March 2020, Stokes' agent negotiated with Persepolis' president. Stokes stated that due to the restrictions on air travel (due to the coronavirus), he was not able to return to Iran. Iran's league matches were also cancelled due to the outbreak. He announced that he would return to Persepolis after the situation improved. On 30 May, Persepolis announced that his contract was terminated due to his absence and the club will seek compensation.
Livingston On 22 August 2020, Stokes signed a one-year deal with
Scottish Premiership club
Livingston. He left on 15 September, without having played for the club, as he disliked training on artificial pitches.
Black Forge On 9 August 2025, after five years out of the game, Stokes joined
Conor McGregor's pub team Black Forge. ==International career==