Victory would have put Bolton third but they were behind after four minutes when McBride stole in to stab home Tomasz Radzinski's cross.
The American doubled the hosts' lead after 18 minutes with a crisp volley straight from Mark Crossley's goalkick.
Bolton scored through a late Sylvain Legwinski own goal but a frustrating day ended when El-Hadji Diouf was red-carded after full-time for dissent.
The high-flying Wanderers might have started the match as marginal favourites but they looked jaded after thwir midweek Uefa Cup trip.
Fulham, on the other hand, made a vibrant start.
Steed Malbranque and Radzinski were in inspired form, the latter's pass causing indecision in the Bolton defence and allowing McBride to nip in and score.
Radhi Jaidi might have cut out Radzinski's pass and the Tunisian defender was again at fault for McBride's second when he failed to connect with Crossley's clearance.
In between, Radzinski went close with a deflected shot that span just wide.
Bolton boss Sam Allardyce's response was to haul off Jaidi after just half an hour and Bruno N'Gotty's introduction did seem to shore up the visitors' defence.
However, Bolton struggled in attack too, with only Kevin Davies' aerial threat causing Fulham any problems.
Crossley had a rare save to make in the second half when Davies shot low and hard straight into the keeper's arms.
Bolton's unhappy day was summed up when Joey O'Brien became the seventh Wanderers' player to go in referee Graham Poll's book, meaning the club will be fined.
Fulham were briefly rocked when Sylvain Legwinski scored a strange own goal after Nolan muscled his way into the box but it turned out to be a consolation Bolton barely deserved.
Diouf's second yellow card came after full-time as he allowed his annoyance with the officials to boil over.
"I thought we played very well in the first half and we could have gone in more than 2-0 up.
"We deserved the three points on the overall performance. My heart was in my mouth. I could even see them winning 3-2, but we stayed strong and held on.
"I'll have to deal with that behind the scenes under our code of conduct.
"Anybody who got booked for mouthing will be dealt with and fined."
Fulham: Crossley, Volz, Bocanegra, Goma, Rosenior, Radzinski, Diop, Malbranque, Boa Morte (Legwinski 61), McBride, John (Helguson 89).
Subs Not Used: Knight, Warner, Pearce.
Booked: Rosenior, Bocanegra.
Goals: McBride 4, 18.
Bolton: Jaaskelainen, O'Brien, Jaidi (N'Gotty 32), Nakata (Okocha 53), Ben Haim, Gardner, Speed, Faye (Djetou 59), Nolan, Davies, Diouf.
Subs Not Used: Walker, Vaz Te.
Booked: Speed, Ben Haim, Davies, Diouf, Okocha, Nolan, O'Brien.
Goals: Legwinski 90 og.
Att: 19,768.
Ref: G Poll (Hertfordshire).