Born in Luton, Bedfordshire, Powell joined Milton Keynes Dons academy and made his professional debut for the club in a 3–1 victory over Hartlepool United on 15 November 2008, coming on as a substitute in the 84th minute and scoring the team's final goal in the 90th minute.
Crawley Town (loan)
Powell joined Conference Premier club Crawley Town on loan on 3 August 2009, making three league appearances before returning to Milton Keynes Dons.
Forest Green (loan)
Powell was loaned out once more, this time to Conference Premier club Forest Green Rovers. He made his debut for the club on 17 October 2009 in a 5–2 defeat away to Histon. His first goal for the club was the third in a 3–1 win over Salisbury City on Boxing Day 2009. Powell became a regular with Forest Green and the club decided to extend his loan until the end of 2009–10 in January 2010. He completed the loan spell with 29 appearances and six goals.
Darlington (loan)
Having not made an appearance for Milton Keynes Dons at the beginning of the 2010–11 season, Powell joined Conference Premier club Darlington on a one-month loan on 1 October 2010. He made his debut for the club the next day in a 1–0 defeat at home to Wrexham. Three days later, Powell scored his first goal for the club in a 2–1 defeat away to Rushden & Diamonds. He made a further three league appearances during his loan spell.
Return to Milton Keynes Dons
Powell returned to Milton Keynes Dons in November 2010 and began to break into the first team, becoming a regular in the starting lineup after the sales of Aaron Wilbraham to Norwich City and Jermaine Easter to Crystal Palace left the club with just two senior strikers. Powell went on to score nine goals in 29 league appearances for the club in the 2010–11 season. On 5 March 2013, Powell signed a two-year extension to his current Milton Keynes Dons deal, keeping him at the club until June 2015. Powell netted eight times in 42 league appearances in 2014–15, as Milton Keynes Dons were promoted to the Championship as League One runners-up. On 18 July 2015, Powell signed another two-year extension tying him to the club through June 2017. Milton Keynes Dons were relegated back to League One after only one season, with Powell making 22 league appearances, scoring twice in 2015–16. On 2 May 2017, Powell was one of three players released by Milton Keynes Dons when his contract expired at the end of 2016–17. Having graduated from the club's academy, Powell made 271 appearances and scored 46 goals for the club across nine seasons.
Northampton Town
On 5 May 2017, Powell signed a two-year contract with League One rivals Northampton Town, and would join the club on 1 July following the expiration of his Milton Keynes Dons contract.
Crewe Alexandra
Powell signed for League Two club Crewe Alexandra on 7 June 2019 on a two-year contract, with the option of a further year. He scored his first goal for Crewe in a 4–2 away win over Carlisle United on 12 October.
Style of play
Powell has been described as being a forward thinking player who often runs at full-backs and is a strong asset down the flanks. His unpredictable nature is often an asset and at times a flaw in his character but remains an important player when on the field.
Career statistics
Honours
Milton Keynes Dons
Football League One runner-up: 2014–15
Individual
Milton Keynes Dons Young Player of the Year: 2010–11