Martin playing forDerby County in 2016 | |||
| Personal information | |||
|---|---|---|---|
| Full name | Christopher Hugh Martin[1] | ||
| Date of birth | (1988-11-04)4 November 1988 (age 37)[2] | ||
| Place of birth | Beccles, England | ||
| Height | 6 ft 0 in (1.84 m)[3] | ||
| Position | Forward | ||
| Youth career | |||
| 1998–2006 | Norwich City | ||
| Senior career* | |||
| Years | Team | Apps | (Gls) |
| 2006–2013 | Norwich City | 102 | (25) |
| 2008–2009 | →Luton Town (loan) | 40 | (11) |
| 2011–2012 | →Crystal Palace (loan) | 26 | (7) |
| 2012–2013 | →Swindon Town (loan) | 12 | (1) |
| 2013 | →Derby County (loan) | 13 | (2) |
| 2013–2020 | Derby County | 188 | (65) |
| 2016–2017 | →Fulham (loan) | 31 | (10) |
| 2018 | →Reading (loan) | 10 | (1) |
| 2018–2019 | →Hull City (loan) | 30 | (2) |
| 2020–2023 | Bristol City | 88 | (15) |
| 2023 | Queens Park Rangers | 16 | (4) |
| 2023–2025 | Bristol Rovers | 57 | (21) |
| International career‡ | |||
| 2007 | England U19 | 4 | (2) |
| 2014–2017 | Scotland | 17 | (3) |
| * Club domestic league appearances and goals as of 22:00, 11 March 2025 (UTC) ‡ National team caps and goals as of 01:21, 7 October 2021 (UTC) | |||
Christopher Hugh Martin (born 4 November 1988) is a professionalfootballer who plays as aforward. Born in England, he has played for theScotland national team and has also representedEngland U19 national team.
Martin began his career atNorwich City, joining the club's books at the age of 10 and making his professional début at 18 in the2006–07 season. He fell out of favour in the2007–08 season and spent the2008–09 season on loan atLuton Town. On his return to Norwich, he was an important first team player as the club recorded successive promotions fromLeague One and the Championship in the2009–10 and2010–11 seasons.
However, upon the club's return to thePremier League, he found himself out of favour and spent part of the2011–12 season on loan atCrystal Palace and parts of the2012–13 season on loan atSwindon Town andDerby County. At the end of the season, he agreed a deal to join Derby on a permanent basis, signing a three-year contract and moving to the club on a free transfer ahead of the2013–14 season. He ended the season as the club's top goalscorer, with 25 goals in all competitions, as the club reached the2014 Championship play-off final. He signed a new four-year contract in August 2014 and was also the club's top goalscorer for the2014–15 season, with 21 goals in all league and cup matches.
On 31 August 2016, Martin joinedFulham on a season-long loan, with an arrangement for a permanent deal at the end of the loan spell. This arrangement was disputed during the season, as Martin expressed a desire to return to Derby.
Martin was eligible to play international football for either England or Scotland, where his father was born. He represented England atunder-19 level in 2007. Seven years later he was first selected for the senior Scotland team, for which he made his full international début in May 2014. He scored his first goal for Scotland in October 2015.
Born inBeccles, Suffolk,[4] Martin was rewarded with a place on the bench for the game againstPlymouth Argyle on 13 January 2007 after impressing in Norwich'sFA Youth Cup run.[5][6][7][8][9][10] He made his first team debut in a 1–0 home defeat toWolverhampton Wanderers on 30 January 2007.[11] He scored his first goal in anFA Cup fourth round replay againstBlackpool on 13 February 2007 atCarrow Road,[12] and grabbed his first league goal in a 1–1 draw againstCoventry City on 24 February.[13] Two more goals againstLuton Town[14] andBarnsley quickly followed.[15] His run of form continued againstDerby County, scoring one and having another ruled offside.[16]
However, he found a place in the starting line up hard to come by in the 2007–08 season underPeter Grant. Under new managerGlenn Roeder he was very much out of favour. He was also constantly criticised by Roeder with Roeder questioning his effort and being banned from a number of pubs in the Beccles area led to more criticism from Roeder.
Along with Michael Spillane he joined Luton Town at the start of the 2008–09 season with Roeder famously naming the pair as "Tweedledum and Tweedledee".[17] The decision to loan the pair out was met with criticism from many Norwich fans feeling that the pair should have been given a chance instead of relying on the high amount of loanees that Roeder had brought in.
Martin joinedLeague Two clubLuton Town on a season-long loan from Norwich two days prior to the start of the2008–09 season.[18] He was announced as one of a number of new signings made by managerMick Harford following the Hatters' exit from administration, along with fellow Norwich playerMichael Spillane, who also arrived on a season-long loan, and midfielderRossi Jarvis, who signed on a free transfer having been released by Norwich in May.
Luton began the season on −30 points, having been deducted 10 points for irregular matters involving player transfers and another 20 points for rule violations when they leftadministration. The club thus faced a struggle merely to avoid relegation from the Football League for the first time in their history.[19]
Martin made his Luton debut in the first game of the season, a 3–1 defeat toPort Vale on 9 August, and he scored his first goal for the club on 23 August in a 1–1 draw withNotts County. His second goal came in a 3–1 win overAldershot Town on 13 September and his third came in a 2–2 Football League Trophy draw withBrentford on 7 October. The match went to penalties, with Luton winning 4–2 and Martin scoring the third.[20] He then went twelve league and cup matches without scoring, ending the run with the second goal in a 3–1 win overBarnet on 6 December. After four games without a goal, he scored four in three games: a brace in a 3–2 win againstLincoln City on 28 December, the first in a 2–2 draw againstChester City on 13 January 2009 and Luton's consolation goal in a 5–1 defeat atDarlington on 17 January.
In Luton's match againstBradford City on 24 January, Martin received his first ever red card. With the score at 2–2,Asa Hall scored in the 91st minute to put Luton ahead. Then, in the final minute of stoppage time, referee Trevor Kettle awarded Bradford a penalty after Martin allegedly trippedSteve Jones.[21]BBC Sport called the decision "controversial"[22] andBedfordshire on Sunday called it a "truly shocking decision", given for "reasons unknown".[23] The decision almost caused a riot in the stands and in the on-pitch "sort-of-brawl" that ensued,[24] Michael Spillane andKevin Nicholls were booked for dissent and Martin was sent off for foul and abusive language.[25]Barry Conlon scored the penalty and the match finished at 3–3. After the final whistle, abuse and missiles were hurled from the crowd at Kettle,[24] which prompted an FA investigation.[26] Despite the furore, the draw took Luton into positive points for the first time all season, though they remained at the bottom of the table, 9 points behind the 23rd placed team and 19 points from safety.[27]
After missing three games through suspension, Martin returned to the team in a 1–1 draw withBrighton & Hove Albion on 17 February. Having gone 5 games without a goal, Martin scored the third in a 3–1 win over Port Vale on 28 February. He scored another in a 2–0 win at Notts County on 10 March and then scored three in three games: one in a 2–1 win overMorecambe on 28 March, one in a 4–2 defeat toRotherham United on 31 March and one inthe final of the2008–09 Football League Trophy atWembley Stadium on 5 April. The match was againstScunthorpe United, who were pushing for promotion fromLeague One and Martin scored in the 32nd minute to level the tie at 1–1. He "burst forward to collect a cross from[Tom] Craddock, before taking the ball beyond the Iron defence with his first touch and beating[Joe] Murphy with his second.[28] Luton won the match 3–2 after extra time and Martin collected his first trophy. His goal also earned him the award for Goal of the Season at Luton's end-of-season awards.[29]
Martin played Luton's next match, a 0–0 draw withLincoln City on 11 April, that meant they had to win their next game two days later againstChesterfield to avoid being relegated.[30] Martin missed the game, Luton drew 0–0 and were relegated.[31] Martin played three more games but did not score again. He finished the season with 49 starts and 2 substitute appearances in all competitions, making him the most-used Luton player for the season. He was also the club's top overall goalscorer, with 13, and the club's top league goalscorer, with 11.
Martin and Spillane rejoined Norwich after the relegation to League One following their League Two spell at Luton. Martin changed his number from 35 to 16. After an impressive pre-season Martin was put in the starting line up againstColchester, however this game ended in a 7–1 defeat for Norwich and Martin was one of those who found himself out of the side for the next few games. However, newly installed managerPaul Lambert began to start with Martin again and he scored his first goal of the season away toMK Dons after just 16 seconds. Martin signed a new three-and-a-half-year contract in January 2010[32] and he finished the 2009–10 season with 23 goals in 48 appearances (40 starts and 8 sub appearances) including the winning goal againstLeeds United at Carrow Road[33] which left the Canaries on the brink of an instant return to the Championship, with promotion later being confirmed with a 1–0 win away againstCharlton Athletic.[34]
In the 2010–11 season Martin scored his first goals in a 4–1League Cup win againstGillingham. He and strike partnerGrant Holt got two goals each. Martin missed a few games at the start of the season, losing his place toSimeon Jackson. He soon got back onto the first team scoring againstBarnsley. Chris Martin scored the winning goal againstDerby County even though it was only in the 13th minute. The final score was 2–1. Unfortunately, Martin played no further part in the rest of the season from February 2011, as he picked up a hamstring injury in training. He made the bench for the last few fixtures, but was an unused substitute.

An unused substitute for the first game of the season, Martin started Norwich's next three league matches alongside Grant Holt, who started all four matches. With Norwich without a win and in 17th place, Martin and Holt were dropped as manager Paul Lambert switched to playing a single striker,Steve Morison. After two matches as an unused substitute, Martin made only one more appearance, as a late substitute in a 2–0 defeat toManchester United. He then failed to even make the bench for the next four games and Lambert made him available for loan, in order for him to play regular football.[35]
Derby County,Millwall andNottingham Forest were all keen to sign him,[36] but on 15 November 2011, Martin joinedCrystal Palace on loan until 2 January 2012.[35] He played eight matches, starting four, and scored once, in a 1–1 draw with Derby on 2 December, his first goal in almost a year, the last coming also against Derby on 4 December 2010. His loan was subsequently extended until 4 February, with managerDougie Freedman saying "He wasn't as match-fit as he could've been and needed his first month to get up to pace. I firmly believe the best is yet to come."[37] Martin started the next two games, a 1–0 League Cup first leg win againstCardiff City and a 1–1 league draw withLeeds United, scoring in the latter. After the game, Freedman expressed his desire to keep Martin until the end of the season, praising his "fantastic goal and fantastic work-rate".[38]
Martin started another two matches, a 1–0 League Cup second leg defeat to Cardiff and a 1–1 league draw withBrighton & Hove Albion, scoring in the latter. His loan was extended again, this time until the end of the 2011–12 season.[39] Martin then played in all of the club's next sixteen matches, starting fourteen of them. He scored a brace in a 4–0 win againstWatford at Selhurst Park on 18 February, which earned him a place in the Championship Team of the Week for that week, and scored one each in a 3–2 defeat to Derby on 24 March and in a 1–1 draw withIpswich Town on 14 April. He did not play in the final two games of the season and returned to Carrow Road having scored seven goals in twenty-eight matches in all competitions.
Crystal Palace were keen to sign Martin on loan again, with a view to a permanent deal, but nothing came of their interest.[40] Martin started the 2012–13 season at Norwich but was again given little playing time. He came on in the 88th minute of the club's second league match of the season, a 1–1 draw withQueens Park Rangers on 25 August, and played the full 90 minutes of the next game, a 2–1 League Cup win againstScunthorpe United on 28 August. He was left out of Norwich's 25-man Premier League squad[41] and didn't appear again for almost a month. He played 71 minutes of a 1–0 League Cup win againstDoncaster Rovers on 26 September, in what would turn out to be his final appearance in a Norwich shirt.
On 15 November, Martin joinedLeague One clubSwindon Town on loan until 5 January 2013.[42] He said, "It's been tough not being involved. It can be hard to get your head around not playing on a weekend. That's the main reason I've come [to Swindon]. I'm coming in to the last six months of my contract [at Norwich] so it's even more important that I'm playing games."[43] Martin played in all eight of the club's matches, starting five of them. Although he didn't score, he helped the team to five wins and a draw. ManagerPaolo Di Canio was so keen to keep Martin and two other loan signings that he offered to spend his own money to keep them at the club.[44] On 7 January, his loan was extended by twenty-eight days until 2 February.[45] He started once and came on as a substitute three times in Swindon's next four matches, scoring once in a 2–0 win againstShrewsbury Town on 19 January.
Di Canio declined to extend his loan move again, with Martin keen on moving to a Championship club instead.[46] Martin returned to Carrow Road but was left out of the club's revised 25-man Premier League squad. He was the subject of an inquiry from League One leadersTranmere Rovers, but they could not afford to sign him. Norwich managerChris Hughton said, "Chris has been unfortunate. He has a wonderful finishing ability but he has just found himself not getting the games here he would like. He played a part at Swindon and that will have given him the feeling of being back involved," adding that he would be leaving again on loan.[47]

On 22 February 2013, Martin joinedDerby County on loan for an initial one-month period.[48] Martin made his Derby debut in a 2–1 loss atWatford on 23 February, as a half time substitute forMichael Jacobs.[49] Martin started his first game for Derby on 1 March, in a 1–0 home defeat to former clubCrystal Palace.[50] He scored his first goal for Derby in the final game of his initial month, the club's second in their 2–1 win over local rivalsLeicester City on 16 March.[51] On 21 March, Derby extended Martin's loan stay to the end of the season.[52] Martin scored a further goal in Derby's 3–1 win againstPeterborough United on 20 April. He ended his loan spell with 2 goals in 13 appearances. He also scored againstCardiff on 6 March and againstIpswich Town on 6 April, but both goals were controversially ruled offside and did not stand.[53][54] ManagerNigel Clough stated his intent to sign Martin on a permanent basis in the summer, with a deal reported to being close in early May.[55]
On 9 May 2013, it was confirmed that Martin would joinDerby County on a free transfer, signing a two-year contract with the possibility of a third year, with the transfer formally taking place on 1 July 2013.[56] Martin faced competition fromJohnny Russell,Conor Sammon andJamie Ward for a starting place.[57] Martin started alongside Russell in Derby's 1–1 draw withBlackburn Rovers on the opening day, his first start as a permanent player.[58] He scored a brace in the second game of the season, a 2–1 victory away atBrighton & Hove Albion on 10 August.[59] His third goal of the season came in a 3–0 win away atYeovil Town[60] and his fourth and fifth goals of the season came in a 5–0 win overBrentford,[61] a second round tie in theLeague Cup. He scored his third and final League Cup goal of the season on 24 September as Derby were knocked out byLeicester City in a 2–1 defeat.[62]
His seventh overall and fourth League goal of the season came on 5 October 2013. The first game under new Derby managerSteve McClaren, Martin scored the first goal, which was also his 50th career league goal, as Derby beatLeeds United 3–1, recording their 10th consecutive win against their fierce rivals.[63] His fifth league goal of the season was the last in a 3–0 win overSheffield Wednesday on 9 November.[64] He then scored five goals in three games: one each in 3–1 and 2–1 wins againstWigan Athletic andMiddlesbrough on 1 and 4 December, respectively, and then his first ever league hat-trick in a 5–1 win againstBlackpool on 7 December.[65] On 29 December, Martin scored a brace againstBarnsley to help Derby win 2–1. This took his goal tally for the season up to 15 in all competitions.[66] After going five league and cup games without scoring, his longest goal drought of the season, Martin scored in the 95th minute in Derby's home match againstYeovil Town on 28 January 2014 to win the game 3–2.[67] Martin scored in the Championship play-off semi final 1st leg against Brighton and Hove Albion from a penalty, he also forced Brighton's keeper Tomas Kuszczak into scoring an own goal.[68]
Martin had a relatively slow start to the season: he scored once in a 2–0 League Cup win againstCarlisle United on 11 August 2014, twice in a 5–1 win at home toFulham on 23 August and once in a 1–1 draw againstIpswich Town on 30 August; these the only goals he scored in the first eleven league and cup matches of the season. He then scored three goals in four days: both goals in a 2–0 win atBolton Wanderers on 27 September and the second in a 2–0 win at home toAFC Bournemouth on 30 September. Another two goals followed in a 3–0 win at Reading on 18 October, an 81st-minute penalty in a 1–0 win against Blackpool on 21 October, then another penalty against Fulham in a 5–2 League Cup win, before scoring the opening goal in a 2–1 defeat to Brentford on 1 November.
After four matches without a goal, Martin scored another brace, his fourth of the season and seventh for Derby, in a 3–0 win against Brighton on 6 December. His fifteenth and sixteenth goals of the season came in a 2–2 draw against Norwich City on 20 December and in a 4–0 win against Birmingham City on Boxing Day. His next two goals were both in 1–0 wins: a 90th-minute penalty after coming off the bench in an FA Cup match against Southport on 3 January 2015 and away to Ipswich Town on 10 January. Martin then endured a barren spell, scoring only once in the next seven matches in all competitions; it was the second in a 2–0 win at Cardiff City on 31 January. He rounded out the season with two goals in the last four games: one each in a 2–0 win against Wigan Athletic on 6 April and in a 3–3 draw against Millwall on 25 April. Martin's downturn coincided with a poor run in form for Derby, who after rising to the top of the Championship at the end of February, won only two of their last thirteen league matches, to finish the season eighth and outside the playoffs by a single point. Martin was again the club's leading goalscorer, as well as the joint-seventh highest scorer in the league, and manager Steve McClaren was sacked.
FormerChelsea,Paris Saint-Germain andReal Madrid assistant managerPaul Clement was named the new Derby manager on 1 June 2015[69] and Martin again began the new season slowly. He scored four goals in the first ten matches of the season in all competitions: the equaliser in a 1–1 draw at home to Charlton Athletic on 15 August, in a 2–1 defeat to Leeds United on 29 August and a brace in a 2–1 win against Preston North End on 12 September. After scoring the first in a 2–0 win against Brentford on 3 October, Martin followed up with his first goal for Scotland, in a 6–0 win against Gibraltar on 11 October and a brace in a 4–2 win at home to Wolves on 18 October. He next scored on 24 October, the first in a 2–1 win against Huddersfield Town.
On 31 August 2016, Martin joinedFulham on a season-long loan. Fulham had the option to sign him permanently at the end of the season.[70] Martin scored his first goal for Fulham in a 4–2 win againstBarnsley on 15 October 2016.[71]
AfterSteve McClaren returned as manager of Derby, he expressed his surprise that Martin had been allowed to leave on loan and indicated that he wanted to recall the player.[72][73] Martin made himself unavailable for a game atReading that was abandoned due to fog.[74] Fulham refused to release Martin from the loan contract, with managerSlavisa Jokanovic saying that players could not "come in and out when you want".[74] In January 2017, Martin signed an extended contract with Derby and said that he was "looking forward to playing for Derby as soon as possible".[75] Fulham reiterated their intention to keep Martin.[75]
Martin returned to Derby for the 2017–18 season.
Having not started a game for Derby since 9 December, Martin was loaned toReading on 31 January 2018.[76] He scored his first, and only, goal for Reading in a 2–1 loss atMiddlesbrough on 10 February 2018.[77]
OnDeadline day, Martin was loaned toHull City on 31 August 2018.[78] He made his debut on 15 September 2018 in a 2–0 home win againstIpswich Town when he came on as an 87th-minute substitute forFraizer Campbell.[79]
On 3 September 2020, Martin joinedChampionship clubBristol City on a two-year deal after being released by Derby.[80] He scored his first goal for Bristol City in a 4-0EFL Cup win againstNorthampton Town on 16 September 2020.[81]In June 2022 he signed a new one-year contract at Ashton Gate with a further one year option.
On 31 January 2023, Martin left Bristol City by mutual agreement.[82]
Martin signed a short-term contract withQueens Park Rangers on 6 February 2023.[83] He made a scoring start to his time with the club, pulling a goal back in a debut defeat toMillwall.[84] He enterered into contract discussions at the end of the season,[85] however opted to leave the club upon the expiration of his contract.[86]
On 27 September 2023, Martin signed forBristol Rovers on a short-term deal until January 2024 having been training with the League One club for a number of weeks.[87] Having featured from the bench in the first match since joining the club,[88] an injury sustained by teammateJohn Marquis left Martin as the only registered striker for an estimated period of six weeks.[89] On 24 October 2023, he scored his first goal for the club, a thirty-five yard lob to rescue a point againstStevenage.[90] On 24 January 2024, having scored ten goals in eighteen league matches, Martin signed a contract keeping him at the club for the remainder of the season with the option for a further year.[91] He was later awarded theEFL League One Player of the Month award for January 2024 having scored five goals in four matches.[92] Despite being awarded the club's top scorer award at the end of season awards ceremony,[93] Martin's season ultimately ended in disgrace as he was given a four-match suspension for a headbutt againstCambridge United, ruling opposition defenderMamadou Jobe out for the remainder of the season with concussion.[94] On 1 May 2024, it was announced that the club had activated the option for a one-year contract extension.[95]
In August 2024, managerMatt Taylor announced that Martin would likely be out for ten weeks having suffered a broken fibula.[96] On 29 October 2024, he made his return to first-team football, playing the first half of anEFL Trophy defeat toExeter City.[97] On 1 January 2025, he opened his account for the season with both of his side's goals in a 3–2 defeat toLeyton Orient.[98] In March 2025, Martin was ruled out for the remainder of the season following a knee injury requiring surgery.[99] Following the club's relegation, it was confirmed that he would remain with the club to continue his injury rehabilitation.[100]
Martin's performances for Norwich in the 2006–07 season saw him win a place in theEngland Under-19 squad, in which he scored a debut goal in a 1–0 victory overTurkey on 21 March 2007. He featured in England's2007 UEFA European Under-19 Championship elite qualification campaign making his competitive début against Russia in May 2007.[101]
In May 2014, Martin was called up byScotland to play in a friendly againstNigeria atCraven Cottage.[102] He qualified to play for Scotland because his father was born inGlasgow.[102][103] Martin came on at half time in a match which ended in a 2–2 draw.[104] He scored his first international goal with the opener in a 6–0 win againstGibraltar in the final game of Scotland's unsuccessfulUEFA Euro 2016 qualifying campaign.[105]
Martin scored the second goal for Scotland in a 5–1 win againstMalta, the first game of2018 FIFA World Cup qualification.[106] He said after the game that he had been surprised to be selected to start the match.[106] Later in the same campaign, Martin scored a late winning goal in a victory againstSlovenia,[107] having been jeered by some Scotland fans as he was introduced to that match as asubstitute a few minutes before scoring.[107]
| Club | Season | League | FA Cup | League Cup | Other | Total | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Division | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | ||
| Norwich City | 2006–07[108] | Championship | 18 | 4 | 2 | 1 | 0 | 0 | — | 20 | 5 | |
| 2007–08[109] | Championship | 7 | 0 | 1 | 0 | 2 | 0 | — | 10 | 0 | ||
| 2009–10[110] | League One | 42 | 17 | 2 | 4 | 1 | 0 | 3[a] | 2 | 48 | 23 | |
| 2010–11[111] | Championship | 30 | 4 | 1 | 0 | 1 | 2 | — | 32 | 6 | ||
| 2011–12[112] | Premier League | 4 | 0 | 0 | 0 | 0 | 0 | — | 4 | 0 | ||
| 2012–13[113] | Premier League | 1 | 0 | 0 | 0 | 2 | 0 | — | 3 | 0 | ||
| Total | 102 | 25 | 6 | 5 | 6 | 2 | 3 | 2 | 117 | 34 | ||
| Luton Town (loan) | 2008–09[114] | League Two | 40 | 11 | 3 | 0 | 2 | 0 | 6[a] | 2 | 51 | 13 |
| Crystal Palace (loan) | 2011–12[112] | Championship | 26 | 7 | 0 | 0 | 2 | 0 | — | 28 | 7 | |
| Swindon Town (loan) | 2012–13[113] | League One | 12 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 12 | 1 |
| Derby County (loan) | 2012–13[113] | Championship | 13 | 2 | 0 | 0 | 0 | 0 | — | 13 | 2 | |
| Derby County | 2013–14[115] | Championship | 44 | 20 | 1 | 0 | 3 | 3 | 3[b] | 2 | 51 | 25 |
| 2014–15[116] | Championship | 35 | 18 | 2 | 1 | 5 | 2 | — | 42 | 21 | ||
| 2015–16[117] | Championship | 45 | 15 | 1 | 0 | 1 | 0 | 2[b] | 0 | 49 | 15 | |
| 2016–17[118] | Championship | 5 | 0 | 0 | 0 | 1 | 0 | — | 6 | 0 | ||
| 2017–18[119] | Championship | 23 | 1 | 0 | 0 | 2 | 0 | — | 25 | 1 | ||
| 2018–19[120] | Championship | 0 | 0 | 0 | 0 | 0 | 0 | — | 0 | 0 | ||
| 2019–20[121] | Championship | 36 | 11 | 3 | 1 | 0 | 0 | — | 39 | 12 | ||
| Total | 201 | 67 | 7 | 2 | 12 | 5 | 5 | 2 | 225 | 76 | ||
| Fulham (loan) | 2016–17[118] | Championship | 30 | 10 | 0 | 0 | 0 | 0 | — | 30 | 10 | |
| Reading (loan) | 2017–18[119] | Championship | 10 | 1 | 0 | 0 | 0 | 0 | — | 10 | 1 | |
| Hull City (loan) | 2018–19[120] | Championship | 30 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 31 | 2 |
| Bristol City | 2020–21[122] | Championship | 26 | 2 | 2 | 1 | 2 | 1 | — | 30 | 4 | |
| 2021–22[123] | Championship | 45 | 12 | 1 | 0 | 0 | 0 | — | 46 | 12 | ||
| 2022–23[124] | Championship | 17 | 1 | 0 | 0 | 2 | 0 | — | 19 | 1 | ||
| Total | 88 | 15 | 3 | 1 | 4 | 1 | 0 | 0 | 95 | 17 | ||
| Queens Park Rangers | 2022–23[124] | Championship | 16 | 4 | 0 | 0 | 0 | 0 | — | 16 | 4 | |
| Bristol Rovers | 2023–24[125] | League One | 34 | 16 | 3 | 0 | 0 | 0 | 1[a] | 0 | 38 | 16 |
| 2024–25[126] | League One | 23 | 5 | 3 | 0 | 0 | 0 | 2[a] | 0 | 28 | 5 | |
| Total | 57 | 21 | 6 | 0 | 0 | 0 | 3 | 0 | 66 | 21 | ||
| Career total | 612 | 151 | 26 | 7 | 26 | 8 | 17 | 6 | 681 | 172 | ||
| National team | Year | Apps | Goals |
|---|---|---|---|
| Scotland | 2014 | 5 | 0 |
| 2015 | 2 | 1 | |
| 2016 | 3 | 1 | |
| 2017 | 7 | 1 | |
| Total | 17 | 3 | |
| No. | Date | Venue | Opponent | Score | Result | Competition |
|---|---|---|---|---|---|---|
| 1 | 11 October 2015 | Estádio Algarve, Algarve, Portugal | 1–0 | 6–0 | UEFA Euro 2016 qualification | |
| 2 | 4 September 2016 | Ta' Qali National Stadium, Mdina, Malta | 2–1 | 5–1 | 2018 FIFA World Cup qualification | |
| 3 | 26 March 2017 | Hampden Park, Glasgow, Scotland | 1–0 | 1–0 | 2018 FIFA World Cup qualification |
Luton Town
Norwich City
Individual