Foster began his professional career in 2001 with Stoke City, having joined from Racing Club Warwick. However, he never made an appearance for Stoke, and spent time on loan with Bristol City, Tiverton Town, Stafford Rangers, Kidderminster Harriers and Wrexham. He switched permanently to Manchester United in July 2005, but again struggled to break into the first team, and he spent two successive seasons on loan to Watford from August 2005 until the end of the 2006–07 season. Having played just 23 times for Manchester United (although he also played in the League Cup-winning teams of 2009 and 2010), Foster switched to Birmingham City in May 2010. An ever-present in the league for Birmingham, Foster was also part of the Birmingham team that won the 2011 League Cup; he made a total of 43 appearances in that season. Following Birmingham's relegation to the Championship at the end of the season, Foster was loaned to West Bromwich Albion, and moved there permanently in June 2012. Foster returned to Watford in July 2018.