Born in Salford, Greater Manchester, Lea was brought up in Leigh in the Metropolitan Borough of Wigan. His 2005–06 season was marred by injury, and he was restricted to 13 appearances for the Under-18 team. In the 2006–07 season, he became a regular for the Manchester United Reserve team, making 21 appearances. His consistent form in the 2006–07 season led to a nomination for the Manchester United Reserve Player of the Year award, but he was beaten to the award by Kieran Lee.
Lea was sent out on loan to Belgian side Royal Antwerp for the first half of the 2007–08 season. He made his debut for the Belgians on 22 September 2007 against R.O.C. de Charleroi-Marchienne; the match finished as a 1–1 draw. He went on to make a further 14 appearances for "The Great Old" before returning to Manchester United at the end of 2007. Lea never played for the Manchester United first team, and on 27 June 2008, it was announced that he would be given a free transfer at the end of his contract on 30 June 2008.
On 4 July 2008, Lea was given a trial at Scunthorpe United, with a view to a permanent deal as a replacement for Marcus Williams, who was involved in a protracted contract negotiation. Despite Williams signing a new contract, Scunthorpe retained their interest in signing Lea, playing him in two pre-season friendlies. Lea signed a one-year contract with the Iron on 25 July 2008, with the option to extend it for an extra year.
This option, however, was not taken up, he was subsequently released at the end of the season having only made three appearances for Scunthorpe. With Lea out of contract, he was free to sign for Chester City on 9 July 2009. Lea made 19 league appearances for Chester before they were wound up and their Conference record was expunged in March 2010.
This left Lea without a club, but a week later he signed for Conference North side Hyde United.
However, he left Hyde after a week in order to join Rochdale.
On 9 July 2010, Lea rejoined Hyde after leaving them just four months earlier to join Rochdale. He rejoined Hyde after he ran out of contract at Rochdale without making a single appearance.
On 27 August 2010, it was announced that he had joined Colwyn Bay.
In June 2014, he signed for Northern Premier League team Witton Albion. He rejoined Colwyn Bay in January 2015 after a spell with Marine.