The 49-year-old has signed a three-and-a-half-year deal with the League One strugglers.
Cotterill's last job in management ended in July 2012 following a short spell in charge of Nottingham Forest.
The former Stoke City, Burnley and Portsmouth boss spent part of last season on the coaching staff at Queens Park Rangers, but turned down the chance to continue his role for the current campaign.
City vice-chairman Jon Lansdown told the club's official website: "I'm delighted that Steve has chosen to join Bristol City Football Club.
"I believe he has the drive, energy and ability to get us back to winning ways.
"He is passionate about bringing success to this club and I am looking forward to working with him to achieve that."
City are currently two points adrift of safety in the League One table.