Davies made the breakthrough in the 33rd minute when he headed home a free-kick from Paul Robinson.
Klasnic extended their lead, only for James McFadden to pull a goal back for Birmingham after Chris Benitez's penalty had been saved by Jussi Jaaskelainen.
Bolton made the breakthrough in the 33rd minute after Barry Ferguson had been penalised for a tug on Jack Wilshere.
Paul Robinson delivered a free-kick into the penalty area and Davies peeled away from Liam Ridgewell to send a header beyond Joe Hart for his ninth goal of the season.
Birmingham battled back back and thought they had equalised in the 39th minute when Sebastian Larsson released McFadden.
The Scotland international's shot came back off Jussi Jaaskelainen's chest and he knocked in the rebound, but referee Kevin Friend ruled it out for handball and booked McFadden.
Bolton extended their lead in the 59th minute when Klasnic drilled the ball home from close range after good skill from Vladmir Weiss.
Substitute Christian Benitez should have pulled a goal back for Birmingham in the 73rd minute but he headed wide at the back post after a cross from Jerome.
The visitors narrowed the gap three minutes later when Benitez went to ground under pressure from Robinson. Jaaskelainen blocked Benitez's penalty then kept out the rebound from Lee Bowyer only for McFadden to eventually find the net.
Source: PA
Source: PA