A forward, Long grew up in Huyton and represented the town at schoolboy level. Long joined the Everton academy as a five-year-old in 2000 and worked his way up through the youth ranks. He made his debut for the Toffees' youth team in a 2–1 Premier Academy League defeat to Bolton Wanderers on 5 February 2011, coming on as a late substitute for Hallam Hope. He broke into the youth team of a regular basis during the 2011–12 season, impressing after scoring 9 goals in 17 games. Long also made his reserve team debut during the season, scoring one goal in seven Premier Reserve League appearances. He signed a two-year professional contract in July 2013. After steady progress in the reserves and a goal for the first team in a 3–1 pre-season friendly defeat to Paderborn in August 2014, Long received his maiden call into the senior squad for Everton's dead rubberEuropa Leaguegroup stage match versus Krasnodar on 11 December. Awarded the number 41 shirt, he made his Everton debut when he came on for Conor McAleny after 80 minutes of the 1–0 defeat. Entering the final six months of his contract in January 2015, Long stated that he hoped to earn a new deal with his performances on loan away from Goodison Park. He turned down a new deal after the 2014–15 season and departed Everton on 28 July 2015.
On 8 January 2014, Long signed for League One side Milton Keynes Dons on a one-month loan. Allotted the number 15 shirt, Long made the first professional appearance of his career in a 3–2 win over Shrewsbury Townthree days later, starting the match and scoring his first senior goal to put the Dons 2–1 ahead. He played the full 90 minutes of the following match versus Bristol City and managed two further starts before returning to Everton in February when his loan expired. Long scored one goal in four appearances for the Dons.
Long followed in the footsteps of former Everton youth colleagues Jake Bidwell, Adam Forshaw and Conor McAleny by joining Championship side Brentford on 20 January 2015, on an initial one-month loan. Through later extensions, the loan was extended until the end of the 2014–15 season. Wearing the number 31 shirt, he made his debut four days later in a 2–1 victory over Norwich City, coming on as a late substitute for Andre Gray. He scored his first Bees goal on his fifth appearance, crowning a 3–1 victory over Bournemouth on 21 February. Selected ahead of Andre Gray, Long made his first Bees start versus Huddersfield Town on 3 March and scored two goals before being replaced by Gray after 73 minutes. He made it four goals in five games with Brentford's opener in a 3–2 victory over Blackburn Rovers two weeks later. A stomach bug, an injury and a gashed knee kept Long out of the squad for the rest of the regular season. Long failed to appear again until what became Brentford's final game of the season, a 3–0 playoff semi-final second leg defeat to Middlesbrough on 15 May, replacing Toumani Diagouraga after 71 minutes. He made 11 appearances and scored four goals during his spell.
On 28 July 2015, Long signed for newly relegated Championship side Burnley for an undisclosed fee. In May 2018, he was released by Burnley following the expiration of his contract after three years at the club.
Loan spells
On 12 August 2016, Long joined League One side Fleetwood Town on a season-long loan deal. On 30 January 2017, Long was recalled by Burnley and immediately loaned to another League One side Bolton Wanderers until the end of the season. He scored on his home debut for the club, coming on as a substitute in a 4–1 win against Walsall. On 28 July 2017, Long joined League One side Northampton Town on a season long loan deal.
Fleetwood Town
On 20 July 2018, Long signed for EFL League One side Fleetwood Town on a two-year deal.
On 8 January 2019, Long joined Blackpool until the end of the 2018–19 season after his contract at Fleetwood had been terminated by mutual consent.
Motherwell
On 10 June 2019, Motherwell announced the signing of Long on a one-year contract to begin when his Blackpool contract expires on 30 June 2019. He made his debut on 13 July 2019, in a Scottish League Cup group stage match away to Queen of the South. Long netted his first hat-trick for the club in a 3–0 Scottish Cup win at Dundee on 18 January 2020. On 10 July 2020 it was announced Long had signed another year deal to stay at Motherwell.
International career
Long has represented England from U16 to U20 level. He made two appearances in the U16s' victorious 2010–11 Victory Shield campaign. Long was elevated an age-group and named in the England squad for the U20 World Cup in June 2013. He scored on his debut for the side in a 3–0 pre-tournament friendly victory over Uruguay. He made substitute appearances against Egypt and Iraq as England crashed out in the group stage. Long made his U19 debut in a friendly versus Hungary on 14 November 2013. Long scored his second U20 goal in a 3–2 Four Nations Tournament victory over the Netherlands on 11 October 2014.