Danny Dichio scored his first goal since August to hand Millwall the East London bragging rights over ten-man West Ham for at least another season.
Dichio came off the bench to head home in the 78th minute after West Ham's new loan signing Darren Powell had rattled his own crossbar with an attempted clearance.
It was Dichio and team mate Paul Ifill's introduction on the hour that completely turned the game in Millwall's favour - but Marlon Harewood's sending off didn't do the visitors any favours.
Harewood was sent for an early bath after 63 minutes for going down too easily from Darren Ward's tackle, having been booked six minutes earlier for lashing out at Kevin Muscat.
And the visitors' performance - which was not as bad as their 4-1 drubbing last season - left supporters clearly unhappy and they demanded the head of manager Alan Pardew at the final whistle.
The Lions should have been ahead at half-time through Jo Tessem, who shot wide just before the break after the ball had pinged around the box from Dennis Wise's corner.
They also started the brighter of the two sides, and Barry Hayles had his first chance just 33 seconds into the match, but fired just wide.
Wise had a volley of coins thrown at him early on when he went to take a corner. The Millwall player-boss calmly collected the loot, before handing the haul to a young fan.
But the ugly scenes witnessed last season were thankfully absent, due in no small part to a massive 1000-strong police presence at the ground.
And security staff were even able to joke about the coin throwing, and announced at half time: "Today's attendance is 15,025, and the collection raised £2.53." West Ham failed to get into gear until halfway through the first half, and seemed content to bully their way round the park.
Mauricio Taricco was one of the worst offenders, and his Hammers debut lasted just 27 minutes before Pardew hauled him off before he was handed a booking or worse.
Fellow debutant Powell, signed on a month's loan from Crystal Palace, had a match to forget, and almost had the ball in his own net when his attempted clearance hit the underside of the crossbar.
Tomas Repka was lucky to stay on the pitch after he elbowed Hayles, then after referee Peter Walton blew for a free-kick the Czech defender rushed to shout his dissent.
Steve Lomas had a chance to grab an equaliser three minutes from time, but his powerful header went straight to home keeper Graham Stack.