Aston Villa's last-ditch push to secure a UEFA Cup place ended in failure as they concluded their season with a draw at Upton Park.
Skipper Gareth Barry appeared to have fired a second-half winner when he expertly finished a move he started but Hammers striker Dean Ashton struck a late equaliser to earn his side a point they scarcely deserved.
But ultimately Villa's efforts to secure European qualification were rendered meaningless by Everton's victory over Newcastle which took the matter out of their hands.
O'Neill could have asked little more of his players as they dominated a feeble West Ham side which was often shambolic in defence, despite the return of Anton Ferdinand from a hamstring injury.
A curling free-kick from Nolberto Solano gave the Hammers a dream start but the impressive Ashley Young's brilliant finish cancelled out the goal.
Villa were nearly caught by an early counter initiated by Nigel Reo-Coker who picked out Gabriel Agbonlahor with a superb pass.
Agbonlahor dashed forward and slipped the ball to Ashley Young only for his shot to strike the left post.
Villa were left to rue the missed chance as West Ham edged ahead in the eighth minute. Ashton was felled on the edge of the area and referee Mike Dean immediately signalled for a free-kick.
Solano stepped up and curled the ball into the top-right corner with goalkeeper Scott Carson getting a fingertip to the effort. Six minutes later Villa were back on level terms with Reo-Coker once again doing the initial damage.
The former Hammers midfielder found Young, who took advantage of slack marking to rifle home a superb goal from 12 yards out.
Villa threatened again through Stiliyan Petrov, who sped down the right wing and crossed for John Carew but he just failed to connect with the ball.
The lively Young was proving a handful and one threaded pass opened up a static Hammers' defence, but once again Carew could not get on the end of it.
A neat jink and turn from Bobby Zamora caused a few worrying moments at the other end but his shot was blocked and the danger passed.
Mark Noble blasted wide of the target as West Ham continued to create a series of half chances, while Villa looked threatening on the counter.
Zamora pulled the trigger on the brink of half time but his shot sailed narrowly wide and there was still time for Agbonlahor to have a shot cleared off the line by Carson.
Portuguese winger Luis Boa Morte, forced a fine save from Carson as West Ham made a bright start to the second half.
Villa should have gone ahead five minutes after the interval when Agbonlahor squared to Carew who only had Green to beat from close range, but the Hammers' keeper showed smart reflexes.
The ball squirted out to Petrov who tumbled over as Green came out to claim the ball but Dean was unconvinced by the theatrics and booked the Bulgarian.
Carew then had an attempt cleared off the line as Villa, perhaps spurred on by news of Newcastle's equaliser, poured forward.
And their reward came in the 58th minute when Barry, spotting acres of space before him, went marauding through midfield to the edge of the box.
He executed a perfect one-two with Reo-Coker that he concluded by smashing the ball home past Green from close range.
Zamora almost levelled a heartbeat later but was denied but the woodwork while at the other end Young broke free down the left only to send his effort narrowly wide.
Ashton could have levelled in the 82nd minute but he rushed his shot and Carson did not have to intervene. Ashton could not be denied two minutes from time, however, as he produced a stunning equaliser to grab an unexpected late point for West Ham