Manchester City bounced back from their mauling against Chelsea to book a place in the quarter-finals of the Carling Cup.
But their victory against the struggling home side was not without controversy.
Brazil playmaker Elano scored the winner from the penalty spot five minutes from time to leave Bolton fuming.
Substitute Lubomir Michalik was adjudged to have handled a cross from Elano as he played it into the area.
Referee Howard Webb missed the incident but decided to award the spot-kick after consulting his assistant.
Bolton shrugged off their anger to stage a rousing finale but it was all to no avail and their run of bad luck continued despite having a new manager in Gary Megson.
The former Leicester boss was forced to make a change in the 33rd minute when Joey O'Brien limped off with an apparent hamstring problem. He was replaced by Michalik.
The Republic of Ireland defender has been unlucky with injuries and only recently returned to the side after a lengthy lay-off.
But his departure gave Michalik a chance to impress for a change as he has been on the fringes since former manager Sam Allardyce's departure.
Michael Johnson should have put City ahead in the 39th minute when he was released by Stephen Ireland.
With only Jussi Jaaskelainen to beat, he clipped his effort wide of the post from an acute angle.
It was a clear opportunity and the first in a match that was short on entertainment at this point.
Bolton responded and on-loan midfielder Danny Guthrie came close on the stroke of half-time, his effort from 25 yards going narrowly wide of the post.
Guthrie then chipped the ball into the area in first-half stoppage-time but Abdoulaye Meite flicked a header wide of the post.
Elano tried to release Georgios Samaras in the 53rd minute but Meite read the situation well and made the clearance.
City boss Sven-Goran Eriksson made his first change in the 57th minute, bringing on Darius Vassell for the ineffective Javier Garrido.
The visitors stepped up the pressure in the 60th minute and Samaras picked out Elano but the ball ran away from the Brazilian.
Vassell then showed a good turn of pace to get into the Bolton area but his finish was poor and he failed to test Jaaskelainen.
Play broke back down the other end and Andreas Isaksson got down quickly to smother a shot from Stelios Giannakopoulos in the 63rd minute.
Elano, who been deadly from set pieces this season, then sent a 25-yard free-kick into the wall three minutes later.
Bolton hit back immediately but Guthrie lofted his shot over the top following a through ball from Kevin Nolan.
City suffered a blow in the 74th minute when England defender Micah Richards was stretchered off with a leg injury after taking an earlier knock. He was replaced by Nedum Onuoha.
Then came that Elano penalty which cheered the 5,000 City supporters but infuriated the home fans.
Bolton were rocked but almost forced extra-time only for Diouf's free-kick to come back off the bar.
Michael Ball then cleared Gavin McCann's header off the line and City breathed a sigh of relief at the final whistle after securing a place in the last eight and remain in sight of some silverware after years of famine.