Fulham 1 Tottenham Hotspur 0
The American defender headed past Paul Robinson from a Simon Elliott free-kick to continue Fulham's brilliant home form.
The visitors ended the game with ten man - as Michael Dawson was sent off for a second bookable offence in the second half.
Fulham had won the last three home clashes against Spurs, and following their impressive home form this season headed into the game full of confidence.
Martin Jol left England striker Jermain Defoe on the bench, as he partnered Grzegorz Rasiak and Robbie Keane in attack.
Spurs are chasing a top four finish in the league, and they started strongly at Craven Cottage.
After two minutes Ledley King hit a shot straight at Antti Niemi, and soon after Andy Reid hit a rasping 20-yard drive which flew inches over the bar.
Fulham soon turned the heat up on their visitors though and pushed for an opener
Brian McBride hit the outside of the post on 13 minutes after a scramble in the Spurs penalty box - and seven minutes later defender Bocanegra wasted a good headed chance as he nudged the ball wide after an Elliott corner.
Both sides were forced into his early substitutions as Sylvain Legwinski hobbled off to be replaced by Tomasz Radzinski for Fulham. For Spurs Tom Huddlestone took the place of winger Reid.
On 33 minutes Robinson produced a stunning save to deny Fulham the lead.
McBride struck a ferocious volley from 15 yards as the ball bounced up in the area, but the England international stopper was equal to it as he leapt to his right to parry the ball over the bar.
The sides trudged in at half-time still searching for a goal to spark the game into life.
After the interval Bocanegra had a header saved by Robinson at his near post on 50 minutes, and only the presence of Dawson stopped Heidar Helguson from reaching a deep Luis Boa Morte cross.
The Icelandic forward was cursing his luck again moments later, as a Steed Malbranque dipped cross arrived just too high for him to nod the ball home from close range.
By the hour mark travelling Spurs fans were singing the name of Defoe in a bid to urge their Dutch boss into a change in personnel on the field.
It seemed to spark a change in pace of play by the visitors as they stepped up a gear in search of the vital breakthrough goal.
Striker Rasiak was presented with a chance on 63 minutes, but his header from close range flew high over the bar.
Fulham fans had their hearts in their mouths soon after as Spurs screamed for a penalty. Boa Morte made a last-ditch challenge to stop Jermaine Jenas crossing from the right side of the box, but referee Howard Webb waved away the claims - and television replays showed it was the correct decision.
On 66 minutes England striker Defoe was finally introduced in place of former Derby forward Rasiak.
But the cheers of Tottenham followers soon turned to jeers, as Dawson received his marching orders for a second bookable offence as he pulled down Helguson on the edge of the area.
McBride's following free-kick was saved at full stretch by Robinson.
Defoe came close late on with a fierce drive which almost squeezed through the grasp of Niemi and the striker was bundled over late on by Bocanegra, who escaped any punishment.
He quickly strode down the other end to head home and win the game in the 90th minute.