Paul McGuinness' side were under pressure in the first half with Joel Castro Pereira making a fine fingertip save to thwart the dangerous William Abbotts. Jamie Thomas drilled a free-kick wide and it was no great shock when lanky striker Abbotts teed up Elliott Newby for the opener.
United struggled to carve out too many openings but one superb move led to Matthew Willock forcing a save out of Harry Campbell, while Ruairi Croskery and Josh Harrop managed off-target attempts.
Ro-Shaun Williams came off the bench for the second half for his debut at this level, alongside Marcus Rashford, who started the FA Youth Cup tie at Leicester City. The visitors looked slicker in attack after the break, with captain Ryan McConnell and Willock sending in long-range efforts.
Sean Goss levelled the scores with a venomous drive, when the ball broke to him outside the box, and was unlucky to clip the bar soon afterwards with another decent strike.
It proved a pivotal moment as, moments later, Thomas, who had already forced a stop out of Pereira, supplied a clinical finish to regain the lead for the Trotters.
With the conditions worsening, most of the noteworthy efforts in the closing stages came from the hosts, with Rashford firing over a rare shot for the Reds. Ben Barber made one goal-saving block inside the six-yard box as Bolton comfortably held out for the three points, with defender McConnell thrown up front for the final couple of minutes.