Impressing at non-league Halifax Town, he turned professional with Doncaster Rovers in 2005. Used sparingly in 2005–06, he was loaned out to Oxford United in March 2006, though did not make it onto the pitch. In 2006–07 he was loaned out to Darlington and Stafford Rangers, before he spent the 2007–08 campaign on loan at Halifax Town. In April 2008 he signed with Port Vale, and became a first team regular in 2008–09. He remained a key first team figure in 2009–10 and 2010–11, and was voted the club's Player of the Year in 2010. He continued to impress for the "Valiants", and earned a move up a division to Leyton Orient in May 2012. He returned to Port Vale on loan in March 2013, and helped the club to secure promotion out of League Two in 2012–13, before re-joining on a permanent basis in the summer. He signed with Shrewsbury Town in August 2014, before moving on to Carlisle United in January 2015. Six months later he signed for Altrincham before retiring in September 2015 due to a hip injury. He came out of retirement to sign for Glossop North End in September 2016. In 2017 he played for Trafford, Colwyn Bay, and Congleton Town.