Bolton came from behind to earn a valuable victory against lowly Birmingham, who also had striker Nikola Zigic sent off late on.
Zigic had given Birmingham the lead with an early header.
But the hosts hit back to lead by half-time with goals from Marcos Alonso and Lee Chung-yong.
A second-half penalty from Keith Andrews settled the game and Zigic then saw red as Birmingham's three-match unbeaten run came to an end.
The result means Birmingham slip to 20th and are seven points above the relegation zone, while Bolton move up to 14th.
Bolton started brightly but it was Lee Clark's side who seized the advantage. Chris Burke's right-wing corner hung in the air and Zigic came through a crowded scene to nod home from six yards for his fifth of the season.
But the hosts did not have to wait much longer for the goal their dominance deserved after Tyrone Mears burst down the right and delivered a teasing ball for Alonso to provide the headed finish; outmuscling Curtis Davies to do so.
It got even better for Dougie Freedman's side just past the half-hour mark, Lee skipping past two defenders, rounding Jack Butland and squeezing the ball in from a tight angle.
The impressive Jay Spearing linked well with Kevin Davies and the veteran striker forced a smart stop from Butland as Bolton finished the half on top.
After the break Burke saw his 20-yard strike well held by Adam Bogdan as Birmingham began to grow into the game.
But after Steven Caldwell handled in the box, Andrews stepped up to calmly steer the spot-kick past Butland for 3-1.
Zigic was given his marching orders late on after picking up two bookings in little over a minute.
Bolton manager Dougie Freedman:
"Today we put everything together and to do it in front of the home fans is all the more pleasing.
"We targeted the midfield as an area where we could dominate the game today and we certainly did that throughout.
"We moved the ball around well and to get the win was great for everyone."
Birmingham manager Lee Clark:
"We didn't play well at all. It was our most inept performance for many weeks.
"We allowed (Jay) Spearing and Andrews to dictate the game, which was what we had planned not to let them do.
"I heard a few rumblings from our supporters that we should be playing four-four-two, but (after Zigic was sent off) we now don't even have a fit or available striker for the next match, so how are we meant to do that?
"I'm absolutely furious with that performance today and I'll be working hard to address it."
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +4:17
Inswinging corner taken right-footed by Jacob Butterfield from the left by-line.90:00 +3:14 Substitution
Substitution Benik Afobe on for Chris Eagles.90:00 +2:54
Free kick awarded for a foul by Kevin Davies on Hayden Mullins. Free kick taken by Jack Butland.90:00 +2:11
Keith Andrews takes the direct free kick.90:00 +2:11 Booking
Booking Hayden Mullins goes into the book.90:00 +2:03
Unfair challenge on Marcos Alonso by Hayden Mullins results in a free kick.89:58
Foul by Robert Hall on Chung-Yong Lee, free kick awarded. Zat Knight takes the direct free kick.87:43
Marcos Alonso shoots direct from the free kick.87:43 Substitution
Substitution Jacob Butterfield is brought on as a substitute for Jay Spearing.87:43
Free kick awarded for a foul by Robert Hall on Chris Eagles.86:35
Tim Ream takes the direct free kick.86:35 Dismissal
Dismissal Nikola Zigic is sent off by the referee.86:31
Unfair challenge on Tim Ream by Nikola Zigic results in a free kick.85:51 Booking
Booking Booking for Nikola Zigic for unsporting behaviour.84:26
Robert Hall fouled by Jay Spearing, the ref awards a free kick.83:20
Outswinging corner taken by Chung-Yong Lee from the right by-line, Marcos Alonso has a headed effort at goal from deep inside the area missing to the right of the target.83:08
Centre by Chris Eagles, blocked by Steven Caldwell.81:20
Foul by Darren Pratley on Steven Caldwell, free kick awarded. Direct free kick taken by Jack Butland.79:35
Outswinging corner taken right-footed by Chris Eagles from the right by-line, Marcos Alonso concedes a free kick for a foul on Curtis Davies. Free kick taken by Jack Butland.
Substitution Jake Jervis joins the action as a substitute, replacing Callum Reilly.78:12 Goal scored
Goal! - Keith Andrews - Bolton 3 - 1 Birmingham Penalty taken right-footed by Keith Andrews and scored. Bolton 3-1 Birmingham.77:33
Steven Caldwell handles the ball and concedes a .76:56
Keith Andrews takes the direct free kick.76:56 Booking
Booking Steven Caldwell booked.76:51
Free kick awarded for an unfair challenge on Chris Eagles by Steven Caldwell.71:29
Marcos Alonso takes the free kick.71:29 Substitution
Substitution Nathan Redmond on for Christopher Burke.71:29
Free kick awarded for a foul by Nikola Zigic on Keith Andrews.70:52
Effort from deep inside the area by Chung-Yong Lee misses to the right of the goal.68:11
Robert Hall takes a shot. Save by Adam Bogdan.67:19
The assistant referee flags for offside against Chris Eagles. Free kick taken by Jack Butland.65:59
Christopher Burke takes a shot. Save by Adam Bogdan.64:57
Corner from the right by-line taken by Chung-Yong Lee, clearance by Curtis Davies.64:12
Free kick awarded for an unfair challenge on Kevin Davies by Curtis Davies. Chris Eagles crosses the ball in from the free kick, Callum Reilly makes a clearance.62:32
Darren Pratley is caught offside. Jack Butland takes the free kick.60:59
Darren Pratley produces a right-footed shot from the edge of the box and misses to the left of the goal.59:24
Corner taken right-footed by Chung-Yong Lee from the right by-line to the near post, clearance made by Paul Robinson.59:05
Darren Pratley takes a shot. Blocked by Steven Caldwell.58:08 Substitution
Substitution Wade Elliott replaces Jonathan Spector.57:20
Chris Eagles has an effort at goal from outside the area missing to the wide right of the target.53:14
The ball is sent over by Tyrone Mears, save by Jack Butland.51:17
Chris Eagles sends in a cross, Jack Butland makes a save.50:15
Long distance shot from Marcos Alonso misses to the left of the goal.49:38
Foul by Nikola Zigic on Marcos Alonso, free kick awarded. Direct free kick taken by Keith Andrews.48:32
Darren Pratley takes a shot. Jack Butland makes a save.47:16
Darren Pratley gives away a free kick for an unfair challenge on Steven Caldwell. Direct free kick taken by Jack Butland.46:55
Mitch Hancox challenges Tyrone Mears unfairly and gives away a free kick. Direct free kick taken by Tyrone Mears.45:01
The game restarts for the second half.45:00 +3:14 Half time
Half Time The half-time whistle blows.45:00 +1:49
Darren Pratley is ruled offside. Jack Butland takes the direct free kick.45:00 +0:53
The official flags Nikola Zigic offside. Adam Bogdan takes the free kick.45:00 +0:16
Free kick awarded for a foul by Chung-Yong Lee on Christopher Burke. Robert Hall delivers the ball from the free kick right-footed from right wing, Darren Pratley manages to make a clearance.44:22
Foul by Marcos Alonso on Christopher Burke, free kick awarded. Robert Hall crosses the ball from the free kick right-footed from right wing, clearance by Adam Bogdan.43:35
Nikola Zigic gives away a free kick for an unfair challenge on Chung-Yong Lee. Jay Spearing takes the direct free kick.40:20
Foul by Hayden Mullins on Kevin Davies, free kick awarded. Keith Andrews takes the free kick.38:08
Corner taken right-footed by Chung-Yong Lee from the right by-line, save made by Jack Butland.37:50
Kevin Davies takes a shot. Save by Jack Butland.36:23
Nikola Zigic gives away a free kick for an unfair challenge on Zat Knight. Adam Bogdan restarts play with the free kick.35:38
Direct free kick taken by Jay Spearing.35:38 Booking
Booking Chung-Yong Lee shown a yellow card.35:36
Mitch Hancox challenges Chris Eagles unfairly and gives away a free kick.32:10
The assist for the goal came from Kevin Davies.32:10 Goal scored
Goal! - Chung-Yong Lee - Bolton 2 - 1 Birmingham Chung-Yong Lee finds the back of the net with a goal from close range to the bottom right corner of the goal. Bolton 2-1 Birmingham.31:26
Darren Pratley is flagged offside by the assistant referee. Jack Butland takes the direct free kick.30:48
The referee blows for offside against Nikola Zigic. Marcos Alonso takes the free kick.30:04
Corner taken left-footed by Chris Eagles from the left by-line, Jack Butland makes a clearance.29:40
Jay Spearing takes a shot. Jonathan Spector gets a block in.27:49
Tyrone Mears concedes a free kick for a foul on Robert Hall. Free kick taken by Jack Butland.26:02
Assist by Tyrone Mears.26:02 Goal scored
Goal! - Marcos Alonso - Bolton 1 - 1 Birmingham Marcos Alonso grabs a headed goal from close in. Bolton 1-1 Birmingham.20:57
Inswinging corner taken right-footed by Chris Eagles, clearance by Jack Butland.18:21
The assistant referee flags for offside against Nikola Zigic. Adam Bogdan takes the free kick.16:33
Corner taken by Chris Eagles.13:41
Inswinging corner taken by Chris Eagles from the right by-line.10:52
The assist for the goal came from Christopher Burke.10:52 Goal scored
Goal! - Nikola Zigic - Bolton 0 - 1 Birmingham Nikola Zigic finds the net with a headed goal from close range. Bolton 0-1 Birmingham.10:13
Jay Spearing takes a shot and went wide of the left-hand post.9:22
Free kick awarded for a foul by Christopher Burke on Marcos Alonso. Free kick taken by Adam Bogdan.7:37
Chris Eagles takes a shot. Save made by Jack Butland.4:14
Corner taken by Robert Hall played to the near post, Chung-Yong Lee manages to make a clearance.3:24
Tyrone Mears gives away a free kick for an unfair challenge on Hayden Mullins. Robert Hall takes the direct free kick.2:36
Kevin Davies gives away a free kick for an unfair challenge on Steven Caldwell. Free kick taken by Jack Butland.0:00
The match begins.
Live data and text provided by our data suppliers