Walters started his career at Blackburn Rovers but failed to break into the first team and joined Bolton Wanderers. He then went out on loan to Hull City, Crewe Alexandra and Barnsley before joining Hull permanently. He then went on to play for Wrexham and Chester City before finally finding regular football at Championship side Ipswich Town. Walters spent three years at Portman Road before joining Stoke City for £2.75 million in August 2010. He helped Stoke reach the 2011 FA Cup Final after scoring twice in the semi-final against Bolton Wanderers as Stoke won 5–0. Walters played 54 matches during the 2011–12 season and then played in UEFA Euro 2012 with the Republic of Ireland. Walters remained a regular at Stoke under Tony Pulis and Mark Hughes, scoring 62 goals in 271 appearances before joining Burnley in July 2017.