He made his Lincoln debut in the FA Cup against Port Vale on 11 November 2006. He scored his first goal in his second league appearance, against Stockport County on 4 December 2007. On 26 December 2007 John-Lewis scored an equaliser in the 51st minute, smashing the ball home off the bar into the top corner in the 2–1 defeat at Bradford City. On 7 May 2010 John-Lewis was placed on the transfer list by Lincoln City managerChris Sutton. Two weeks later, he departed the club by mutual consent.
On 5 August 2010 he signed a twelve-month contract with Bury after impressing manager Alan Knill. John-Lewis was part of Bury's promotion winning side, playing in Bury's 3–2 victory over Chesterfield, coming on as a substitute in the final game of the season at Proact Stadium, seeing Bury promoted after a ten-year absence from League One. In May 2011 he was offered a new 12-month contract, which he signed in June 2011.
On 31 January 2013 John-Lewis signed for Grimsby Town on an 18-month deal. He scored his first goal for the club in the final league game of the 2012–13 season against Woking, a header on the line in the 75th minute, having already sealed a play-off spot. In May 2014 he activated a clause in his contract giving him another year with The Mariners. On 25 October 2014 he scored a brace against Guiseley in the 3–0 victory of the FA Cup First Round, heading in the second goal from a blocked Nathan Arnold shot, the third goal of the game came when Arnold fired the ball across goal after cutting in from the left for John-Lewis to tap in at the far post. On 17 May 2015, John-Lewis scored the opening goal inside two minutes against Bristol Rovers, in the 2015 Conference Premier play-off Final at Wembley, he forced the ball over the line from close range with a header, Rovers equalised later in the first half, the game went to extra-time, but with the game still at a stalemate, Grimsby ended up losing 5–3 on penalties, John-Lewis having scored his penalty kick. John-Lewis featured in 39 league games during the 2014–15 season, scoring 16 goals, 4 of which were from penalties, this was his best tally of his career so far.
On 29 May 2015, John-Lewis signed for League Two club Newport County on a two-year contract. He made his debut for Newport on 8 August 2015 versus Cambridge United. He scored his first goal for Newport on 3 October 2015 in the League Two match versus Exeter City. His time at Newport County was blighted by injury. He missed half of the 2015–16 season due to a hamstring injury. In July 2016 he suffered a knee injury in a pre-season friendly match causing him to miss most of the 2016–17 season. Returning to the side for the last two matches of the season, he played a key role in securing the clubs Football League status by winning a penalty which was successfully converted by Mickey Demetriou to open the scoring in a final day victory over Notts County.
On 26 May 2017, it was announced that John-Lewis had signed a one-year deal with League One side Shrewsbury Town, with the option of a further year. He scored his first goal for Shrewsbury on his debut in a 1−0 win over Northampton Town on 5 August 2017. He was offered a new contract by Shrewsbury at the end of the 2017–18 season. He was injured in January 2019. He signed a new six-month contract with the club in May 2019 but was released by Shrewsbury in January 2020
Hereford
On 7 February 2020, John-Lewis signed for Shrewsbury's local rivals Hereford on a deal until the end of the 2019–20 season.