Born in Plympton, England Leonard was a graduate from Ivybridge Community College, he signed for Plymouth Argyle in June 2001 as a schoolboy. He progressed through the club's Centre of Excellence to be rewarded with a two-year apprenticeship at the end of the 2007–08. Regarded as one for the future. His elevation to training regularly with the club's first-team coincided with the return of former player Paul Mariner to Plymouth Argyle and, despite still being an apprentice, he made his first-team debut for the club on 27 March 2010 against Blackpool at Home Park.
Loans to Weston-super-Mare and Tiverton Town
He joined Weston-super-Mare on loan in December 2010, where he made five appearances in the Conference South. In January 2011, he joined Tiverton Town on loan for one month, which was then extended until the end of April.
Return to Plymouth Argyle
He was released by Plymouth Argyle at the end of the 2010–11 season.
Southend United
Leonard signed a one-year deal with Southend United on 27 July 2011, with the option of a further year after impressing on trial. Leonard scored three goals during Southend's pre-season, including one from inside his own half. On 7 March 2014, Leonard signed a new three-and-a-half year contract extension with Southend. At the end of the 2014–15 season he played for Southend in the League Two play-off final against Wycombe Wanderers. Southend won in a penalty shoot-out and were promoted to League One. Leonard was voted Player of the Season at the end of the 2015–16 season, the second time he has claimed the award after also winning in 2013–14. At the end of the 2016–17 season, Leonard became only the second player in Southend history, after Ron Pountney, to win the Player of the Season award three times. Leonard also scooped awards for Players Player and Goal of the Season.
On 5 January 2018, Southend announced that terms had been agreed with Championship club Sheffield United for Leonard's transfer. Leonard agreed terms with the Blades on 6 January, and it was reported he would join them subject to completing a medical. Leonard signed for Sheffield United on 9 January 2018 and was unveiled as a player on the same day.
Millwall
On 31 August 2018, Leonard signed for Millwall initially on loan, but the deal became permanent in January for a club record fee.
Personal life
His father, David, is a former player who played for Tiverton Town. Having worked as a coach at Plymouth Argyle's Centre of Excellence, he has managed numerous clubs in the South West of England, including Liskeard Athletic, Plymouth Parkway and Truro City.