Born in Greenwich, London, Weston attended ErithSecondary School, and was spotted by a Millwallscout when playing for the school team and subsequently joined Millwall's youth academy. In only his second appearance for Millwall's first team, he replaced player-manager Dennis Wise in the 89th minute of the 2004 FA Cup Final against Manchester United to become the youngest FA Cup finalist at the age of 17 years 119 days, beating the 125-year-old record of James F. M. Prinsep. He said "it's obviously the highlight of my career so far. I supported Manchester United as a kid so that made it even more special. I didn't get long on the pitch, but I got a few touches. I remember a sliding tackle on Ruud van Nistelrooy, and a 50–50 with Nicky Butt. I kept my shirt, and I also got Mikaël Silvestre's". Weston moved to Swindon Town in July 2006 when Dennis Wise, now managing Swindon, signed him again. Weston finally managed a run of appearances and scored his first professional goal in a game against Bristol Rovers. He was released by Swindon a year later. Weston signed a two-year contract with Leeds United on 7 August 2007, the third time that Dennis Wise gave him a contract. He scored his first goal for the club in their 3–0 win over Northampton Town in January 2008, but his time with Leeds was not long. "Gary McAllister, was straight with me. He just told me I wasn't in his plans and I should get myself another club," said Weston later. Weston signed for Football League Championship team Scunthorpe United on loan, in March 2008. In August 2008, Weston joined Gillingham, initially on a one-month loan, before signing a two-year contract. He said "when the chance came to go to Gillingham I grabbed it...being from the area, I knew the club, knew the set-up was good. It was the chance to move back to where my family is, and to play regular games". He made his Gillingham debut away to Bournemouth on 9 August 2008, and scored his first goal for the club on 28 December 2008 against Wycombe Wanderers. Weston signed for Barnet on 13 August 2012, but saw a lack of first team action at first due to the arrival of John Oster and Edgar Davids soon afterwards. He played a prevalent role however, in Barnet's last fixtures of the season, starting their last game at Underhill, with his shot from outside the box hitting the post. He started the final game of the season against Northampton Town, which Barnet went on to lose 2–0, thus relegating them to the Conference. Weston spent six seasons with the Bees, during which time he held the captaincy and won the Conference Premier title in 2014–15. On 24 May 2018, it was confirmed that Weston had agreed to join Chesterfield for the 2018–19 season.