The West Ham striker has signed with City for an undisclosed fee on a four-and-a-half-year deal and looks set to make his debut on January 28 against former club Newcastle.
"I am delighted to be working with Craig once more," City boss Mark Hughes told the club's official website.
"He is an outstanding player who provides us with qualities that we are slightly lacking.
"He has blistering pace, has bags of enthusiasm and has a superb attitude to training. He will be a great addition to the squad."