West Ham and Manchester City must replay their FA Cup third round match again on Wednesday week.
City's Dunne (right) was again outstanding at Upton Park
City had claims for an early penalty when Anton Ferdinand brought down the impressive Martin Petrov, while Robert Green superbly denied Stephen Ireland.
Joe Hart kept out Matthew Etherington's shot and palmed away a Mark Noble free-kick as the Hammers responded.
Ireland came close with another volley after the break, while Hart tipped over Dean Ashton's header near the end.
Neither side will relish the prospect of having to play another game but, after a week in which the tournament's importance was again debated, it was refreshing to see two strong line-ups approach this match with real gusto.
No-one epitomised that more than Petrov, who cut inside in the 16th minute and was clumsily brought down by Ferdinand, only for referee Rob Styles to wave away surprisingly muted claims.
Petrov's deep cross then found its way to the far post, where Ireland unleashed a powerful volley that Green brilliantly palmed over.
At the other end, Ashton was well marshalled by in-form City skipper Richard Dunne, leaving energetic duo Etherington and Mark Noble to produce most of West Ham's best moments.
Etherington, who was returning after two months out with a groin problem, came desperately close to a breakthrough when Hayden Mullins's cross was flicked on by Carlton Cole, only for Hart to tip his effort around the near post.
Hart then palmed away a free-kick Noble whipped in as the Hammers enjoyed a good spell but Petrov was never far from the action.
His cross would have been converted by Mexican striker Nery Castillo, who looked bright on his debut, but for a last-ditch interception from Ferdinand.
Lucas Neill, who had been tormented by Petrov, was replaced by Jonathan Spector and West Ham did nearly all the pressing at the start of the first half.
City appeared to have lost their first-half fluency but their threat on the break was illustrated when another Ireland volley was kept out by Hart.
Although a raft of substitutions affected the flow of the game in the latter stages, it remained an absorbing spectacle.
After a quiet spell, Petrov was again at the heart of some intricate passing moves from the away team, while West Ham were by no means overshadowed.
One of their replacements, Kyel Reid, delivered a good centre which Ashton made decent contact with but Hart made sure there would be no late drama by helping it over the bar.
West Ham: Green, Neill (Spector 46), Ferdinand, Upson, McCartney, Pantsil, Noble, Mullins (Bowyer 75), Etherington (Reid 69), Ashton, Cole.
Subs Not Used: Wright, Collins.
Man City: Hart, Onuoha, Dunne, Richards, Ball, Ireland (Etuhu 66), Corluka, Hamann, Petrov,
Castillo (Gelson 72), Vassell (Bianchi 79).
Subs Not Used: Schmeichel, Garrido.
Ref: Rob Styles (Hampshire).
BBC Sport Player Rater man of the match: Man City's Martin Petrov 8.42 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.