The Wales international joins The Trotters on a two-and-a-half-year deal, having moved to Barnsley in 2011 where he scored 20 goals in 64 appearances.
It is believed that Davies' contract involved a £300,000 release clause, enabling Bolton to talk with the striker.
Bolton boss Dougie Feedman said: "Craig is a player I am really fond of. I actually tried to sign him a couple of years ago and he will bring all the right ingredients to our club.
"He is hungry. He hasn't got the t-shirt of playing in the Premier League, but is desperate to get it. He's a good age and represents very good value for the football club.
"He is the type of player I want around the place."
The 27-year-old, who played for Manchester City's youth team, is set to make his debut this weekend against Millwall.