Phillipe Christanval's first goal for Fulham saw them deny West Ham, who had substitute Bobby Zamora sent off.
Benayoun was in inspired form for West Ham
Tomasz Radzinski turned in Heidar Helguson's header to open the scoring on 16 minutes before Zamora notched his 100th league goal with a low shot.
Yossi Benayoun chipped in after the break to put West Ham ahead but Brian McBride levelled with a header.
Benayoun then rounded Jan Lastuvka for his second but Christanval smashed home an equaliser in stoppage time.
It was hard on West Ham and the outstanding Benayoun in particular, who had cleared Franck Queudrue's header off the line moments before the late leveller.
And all game long he had overshadowed his team's new signings Luis Boa Morte - playing against his old club - and Nigel Quashie.
Indeed, former Fulham skipper Boa Morte could have, himself, ensured his old employers were defeated had he done better with two good chances.
But the Portuguese forward could not direct his efforts goalwards to start paying off his transfer fee.
It was a bad day all round for West Ham's forward line as Carlos Tevez went off injured early on and his replacement Zamora was extremely unfortunate to be sent off on 76 minutes after a sliding challenge.
It turned sour Zamora's joy at scoring a landmark goal, which also brought his side level following Radzinski's opener.
Radzinski was fortunate to be in the way and divert Helguson's header into the net.
Zamora's equaliser was borne of strength, power and a clinical finish.
Seconds after the restart, Benayoun put West Ham ahead with an exquisite chip and it appeared the hosts would overpower their opponents.
But the visitors battled back bravely and McBride nodded in to restore parity again.
However, when Benayoun took advantage of some sloppy defending and kept his feet after rounding the keeper to poke home, it seem the result was set.
Until, that is, Christanval found himself in front of goal with the ball at his feet and duly accepted the chance to earn his side a draw.
West Ham boss Alan Curbishley:
"We were 2-1 and 3-2 up after falling behind and we have lost two more injured players - now this draw feels more like another defeat.
"Although we had gone down to 10 men I thought we would still get the three points. We were desperate for them after the run we have had but we looked in trouble whenever set-pieces went into our box.
"But I can have no complaints about the commitment of the team. Their heads were on the floor after the late equaliser and that is a good sign - far better than at Reading (a 6-0 defeat)."
Fulham manager Chris Coleman:
"To be honest, we played well on the day and I think the equaliser we got was the least we deserved from the game.
"Sometimes it can be hard to play against 10 men and I think Zamora's sending-off helped them more than us because it upset our rhythm and they responded by putting players behind the ball.
"But we kept fighting and, in our opinion, Vincenzo Montella has had a stonewall penalty turned down, so to get a point is reward for our efforts."
West Ham: Carroll, Dailly, Collins (Spector 11), Gabbidon (Newton 81), McCartney, Benayoun, Reo-Coker, Quashie, Boa Morte, Cole, Tevez (Zamora 13).
Subs Not Used: Green, Mullins.
Sent Off: Zamora (76).
Booked: Reo-Coker, Zamora, Cole.
Goals: Zamora 28, Benayoun 46, 64.
Fulham: Lastuvka, Rosenior, Christanval, Bocanegra, Queudrue, Routledge, Volz, Brown, Radzinski, McBride, Helguson (Montella 67).
Subs Not Used: Warner, Runstrom, Pearce, Omozusi.
Booked: Christanval, Queudrue, Rosenior, Helguson, Bocanegra, Routledge.
Goals: Radzinski 16, McBride 59, Christanval 90.
Ref: G Poll (Hertfordshire).