A Marvin Sordell penalty secured the points while Jonathan Woodgate was dismissed for the visitors. Chris Eagles' 10th of the season had put the Trotters ahead, before Kieron Dyer headed in an equaliser.
The Trotters were made to chase victory without Jay Spearing (broken toe) and striker David Ngog (dislocated shoulder), while Boro were lacking the services of Merouane Zemmama and striker Lukas Jutkiewicz but centre-back Woodgate passed a late fitness test on a tight muscle.
The Boro defence were nearly breached within the first two minutes when Bolton's Craig Davies tried a speculative 18-yard shot that Jason Steele did well to tip around the post, and a minute later he tipped over from Medo following a Chris Eagles corner.
Boro were having their fair share of possession, though, and Scott McDonald should have done better when presented with a headed chance just six yards from goal after 23 minutes.
The visitors were the first to show after the interval when a shot from Mustapha Carayol from 20 yards brought a desperate stop from Adam Bogdan, but the Trotters broke the deadlock on their next foray upfield.
Chung-Yong Lee's pass provided the opportunity and from 12 yards out, Eagles made no mistake to make it 1-0 after 50 minutes, but the lead only lasted six minutes. McDonald crossed from the left for Dyer to nod home from six yards.
Parity lasted a mere three minutes, though. Woodgate's foul on Lee resulted in a booking for the former Leeds man and a penalty, from which Marvin Sordell restored the hosts' lead.
Five minutes later another Woodgate foul - this time on Sordell - saw the Boro man dismissed and the visitors' hopes effectively disappear.