Brazilian Elano's late penalty secured Manchester City a Carling Cup quarter-final berth to hand Gary Megson his first defeat as Bolton manager.
Bolton substitute Lubomir Michalik was adjudged to have handled, but the spot-kick was only given after referee Howard Webb consulting his assistant.
Michael Johnson should have put City ahead in the 39th minute, but he clipped his effort wide of the post.
After Elano scored, El-Hadji Diouf's free-kick came back off the bar.
606: DEBATE
Michalik was a first-half substitute for Bolton when he came on in the the 33rd minute when Joey O'Brien limped off.
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.
After Diouf hit the woodwork, City defender Michael Ball had to clear Gavin McCann's header off the line.
Bolton boss Gary Megson on the penalty decision:
"It was not clear cut. It was a bit of a nonsensical decision in such an important game.
"But the players deserve great credit for keeping going."
Manchester City manager Sven-Goran Eriksson:
"It was important to go through and reach the quarter-finals. I am happy.
"I thought it was a penalty. The player moved his arm but whether it was intentional I do not know."
Bolton: Jaaskelainen, Joey O'Brien (Michalik 33), Meite, Andrew O'Brien (Campo 77), Samuel, Nolan, McCann, Alonso, Guthrie, Giannakopoulos (Braaten 90), Diouf.
Subs Not Used: Al Habsi, Speed.
Booked: Diouf, Meite, Jaaskelainen.
Man City: Isaksson, Corluka, Richards (Onuoha 73), Dunne, Ball, Ireland, Hamann (Gelson 78), Johnson, Garrido (Vassell 56), Elano, Samaras.
Subs Not Used: Hart, Bianchi.
Booked: Ireland, Vassell.
Goals: Elano 86 pen.
Att: 15,510.
Ref: Howard Webb (S Yorkshire).