The fee is undisclosed, with the former York City winger signing a three-and-a-haf year contract at Ashton Gate.
"I've had a good rise through the divisions in the last few years. I've got some great memories from my time at Scunthorpe United but it's the right time in my career to move on," he told Bristol City's official website.
"Bristol City is a massive club with great potential. I've been told about the new stadium and training ground.
"I've come from one relegation battle with Scunthorpe and hopefully this won't turn into another one. I'm sure we can start pushing up the table.