Whitehead joined his local non-League club Abingdon Town before he signed for Football League club Oxford United in 1999. He impressed in the lower divisions and was signed by Championship club Sunderland in 2004. He won promotion in his first season with Sunderland, although they were relegated from the Premier League after one season. He was made captain by Roy Keane as Sunderland claimed an instant return to the top flight. After two more seasons in the north-east, Whitehead signed for Stoke City in 2009. He helped Stoke reach the 2011 FA Cup Final, where the team finished runners-up to Manchester City. After spending four seasons with Stoke, Whitehead signed for Middlesbrough in 2013. He moved to Huddersfield Town two years later, helping them to promotion from the Championship in 2017 before retiring in 2018.