Andy Carroll's 50th Premier League goal had give the Hammers a first half lead, but a second half fight back from Hull secured the points at the KCOM Stadium.
With three defeats in succession for West Ham, and Hull fielding two strikers from the offset, Jose Fonte’s booking with just 80 seconds on the clock did little to settle the nerves of the Hammers fans.
But they would soon settle down.
Carroll, captaining the Hammers with Mark Noble on the bench, scored the opener after chesting-down Aaron Cresswell’s cross before placing the ball past Eldin Jakupovic with 18 minutes on the clock.
Carroll, having scored the 50th Premier League goal of his career - his 30th for the Hammers - looked set to come off shortly afterwards as he landed awkwardly after heading clear a Hull attack.
The striker went off for treatment, but was soon back on the field, and West Ham took their lead into the break.
West Ham’s advantage remained intact for only a matter of minutes after the restart as Andy Robertson fired the Tigers level.
The Scottish left back received the ball inside the box before coolly slotting it past Darren Randolph.
Robertson’s goal sparked the home faithful into life, and they almost took the lead just after the hour mark as Alfred N'Diaye struck the post, and substitute Kamil Grosicki failed to convert the rebound.
Bilic was forced into a change in the 67th minute when Aaron Cresswell was taken off injured and replaced by Arthur Masuaku, with Ryan Snodgrass – facing his former club – replaced shortly after.
Despite edging the possession, West Ham struggled to craft a meaningful opportunity after the equaliser, and they were punished with five minutes left on the clock when Ranocchia sealed a dramatic late win for the Tigers.
The result extends West Ham's wait for a Premier League win to six matches.