Bolton booked an FA Cup quarter-final tie at Birmingham after Ivan Klasnic’s first-half goal saw off the challenge of Fulham at Craven Cottage.
The Croat struck early in the first half when he volleyed in from 12 yards after good work from Fabrice Muamba.
Klasnic had another shot parried away by Mark Schwarzer, who also saved well from winger Martin Petrov.
Bobby Zamora returned to action for the first time since September and went close for Fulham with a shot late on.
The England forward, who had been sidelined with a broken leg, sent an effort an effort fractionally over Adam Bogdan’s bar in the last few moments.
But Zamora’s strike was one of only a few clear-cut efforts on a day when Bolton came out top as a result of good organisation and clinical finishing.
Mark Hughes’s side were the better team during the first quarter of the match, with Moussa Dembele forcing Bogdan into pulling off a good save with his feet.
They also went close through Clint Dempsey, who headed wide from Carlos Salcido’s deflected delivery.
Bolton have proven to be superb on the counter-attack this season and a break in the 17th minute was another example.
Muamba marauded down the wing and fired in a fierce cross that Aaron Hughes failed to clear, allowing Croatian Klasnic to volley in the opener.
It was his second goal in a week and another welcome tonic during a season where injuries and off-the-field events have troubled the 31-year-old.
Fulham looked a little ragged after the goal and both playmaker Danny Murphy and Steve Sidwell were finding it hard to release Andrew Johnson and Dembele up front.
But the home side got no favours from referee Stuart Attwell.
The official from Warwickshire riled both Dembele and manager Hughes, who both thought the official made a mistake in not punishing Bolton defender David Wheater for repeated shirt pulling.
Attwell was at the centre of more controversy after the break when he booked Fulham defender Chris Baird and Martin Petrov after an altercation in which Baird appeared to thrust his hands at the face of the Bulgarian and might have been sent off.
Looking for a way back into the match, Hughes brought on Zamora, who had not played for the first team since September when he broke his leg in a game against Wolves.
The home side switched to playing three men in attack but the new formation meant they were now even more susceptible to conceding on the break.
On one occasion, Petrov picked up the ball after a Fulham free-kick broke down and he found Davies, who took too long in the area allowing Baird to clear.
In the final five minutes, Zamora attempted to write his own fairytale ending but his shot cleared the Bolton bar by about a foot.