Bolton goalscorer Stelios celebrates with Kevin Davies
Substitute Stelios Giannakopoulus scored an extra-time winner to send Bolton into the Carling Cup last 16.
Bolton were without Nicolas Anelka and El-Hadji Diouf but took a deserved lead through Danny Guthrie's powerful shot.
Substitute David Healy levelled in the 72nd minute, arrowing a shot through a crowd of players.
Healy and Diomansy Kamara hit the woodwork in extra time before Stelios came on after 106 minutes and settled the tie four minutes later.
Bolton boss Sammy Lee made nine changes from the side that drew with Tottenham on Sunday and handed full debuts to Guthrie, Christian Wilhelmsson, keeper Ali Al Habsi and Daniel Braaten.
His side were the first to threaten though, with Fulham stand-in keeper Kasey Keller saving Braaten's header.
And having had the better of the first half, with the lively Wilhelmsson causing all sorts of problems, it was no surprise when Bolton took the lead in the 57th minute through a cracking 25-yard drive from on-loan Liverpool youngster Guthrie.
Bolton almost made it two five minutes later when Braaten took Nicky Hunt's pass in his stride and shot just wide of the near post.
Fulham responded by sending on �6m striker Diomansy Kamara but Bolton remained comfortable.
However, Fulham's second substitution proved more effective, Healy rifling home just six minutes after coming on - despite the desperate efforts of the Bolton defenders on the line.
Fulham finally appeared to have got the better of their weakened opposition in extra-time as Healy hit the woodwork and Kamara's follow-up was ruled out for offside before the latter also struck the post.
But Stelios, who replaced Braaten, provided the sucker punch, shouldering Paul Konchesky off the ball before crashing home with eight minutes remaining.
Bookmark with:
What are these?