The game looked to be wrapped up with an hour played after Christian Eriksen added to Harry Kane's first-half brace, but the Hammers were back in the contest when Javier Hernandez found the net from close range.
Spurs defender Serge Aurier picked up his second yellow of the afternoon shortly after and the Hammers' hopes of salvaging a point were boosted further when Cheikhou Kouyate headed in with just three minutes remaining.
Mauricio Pochettino's side ultimately held out for the win, however, as tempers frayed between both sets of players in what proved to be a feisty end to the London derby.
"We are disappointed with the result. We started really well. We defended well, with shape and didn't give them pockets of space," Bilic told reporters afterwards.
"Before the first goal we had lots of attacking opportunities but we didn't use it. Then we make a mistake and their finish was clinical. The first half was nowhere near 2-0.
"We came back and after the red card we pressed them. In the end we came to 3-2 but there wasn't enough. The game was very hectic with fouls and time-wasting. We showed good pride to come back.
"When you play against the top teams, you give a little and from that little they create a chance and score."
The result leaves the Hammers 19th in the Premier League table with just four points from their opening six fixtures.