Manchester City failed to score in the Premier League for the first time this season as West Brom frustrated the league leaders to earn a deserved draw.
City dominated possession but struggled to convert that into clear-cut chances against a well-drilled Baggies side.
Mario Balotelli came closest with a 30-yard shot that hit the bar, while Sergio Aguero wasted a superb opening.
West Brom grew as a threat and could have claimed a famous win but Jerome Thomas's drive struck the post.
The draw was a disappointing end to what has been an increasingly impressive 12 months for Roberto Mancini's side, which have seen them rewarded with a first taste of Champions League football, a first major trophy for 35 years and top spot in the table on Christmas Day for the first time since 1929.
They have accrued 72 points from 36 games in 2011, 45 from the first 18 matches of this season - as opposed to 33 from the final 18 fixtures of the last campaign - to leave them leading the division on goal difference from fierce rivals Manchester United.
Perhaps justifiably, City swaggered with self-confidence at The Hawthorns, dominating possession, but in and around the box they were given little space to work with and demonstrated a distinct lack of clinical edge.
Credit for this must largely go to West Brom, whose work rate and defensive discipline slapped the shackles on Mancini's men in a fashion few others have achieved this season.
DID YOU KNOW?
- This is the first time Manchester City have failed to score in a Premier League game this season and their first blank since a 3-0 loss to Liverpool on 11 April
City were reduced to shooting principally from distance, with Samir Nasri and Mario Balotelli having efforts from outside the box saved by home keeper Ben Foster, and the Italian seeing a free-kick deflected narrowly wide.
When an opening in the box did come, City's usually lethal leading stars fluffed their lines, with David Silva side-footing a first-time effort over from 15 yards after he was found by Sergio Aguero's cross.
The Argentine was himself guilty of spurning a glorious chance after the break when he broke the offside trap from a header by James Milner but paused - perhaps expecting a flag - and allowed Gareth McAuley to get back and save West Brom with a superb last-ditch tackle.
Milner himself also found space in the box as a cross was delivered from the left, but he could only tamely head wide.
With so much effort dedicated to defence, West Brom provided little threat to City, particularly for the first hour, when Chris Brunt's early shot, which flashed past the far post, and a Paul Scharner 30-yard low effort, which Joe Hart palmed wide, the closest they came to a goal.
However, West Brom fed off City's frustration and increasing commitment to attack, crafting more openings as the game wore on.
Shane Long found space at the back post from a Jerome Thomas cross but was unable to direct his header goalwards, while Brunt fired a free-kick wide of Hart's right-hand post.
Thomas came closest with a superb low drive from 25 yards that smashed into the base of the post before deflecting away from danger.
City pushed until the end to snatch a late winner, but West Brom held firm.
West Brom manager Roy Hodgson:
"It was always going to be tough. We know how good they are and we would have to be at our best. I'm very pleased that we kept our shape and discipline.
"We almost sneaked it at the end on the break, but I'm not unhappy with a point."
Manchester City manager Roberto Mancini:
"Today was difficult. We knew this before the game. When you a play a team with all players behind the ball at home, if you don't score in the first half it's not easy, you don't have any space.
"When we have a chance we should score but maybe we were too slow in the first half.
"It is impossible to score three or four goals for 38 games. There will be some moments in the year when you won't score. We did everything today and wanted to win, but couldn't."
Live Text Commentary
Full Time The referee signals the end of the game.90:00 +2:18
Mario Balotelli concedes a free kick for a foul on Gareth McAuley. Ben Foster takes the direct free kick.90:00 +1:21
Shot by Edin Dzeko from outside the area goes high over the crossbar.90:00 +0:52
The ball is sent over by Gael Clichy, Gonzalo Jara Reyes makes a clearance.89:24
Adam Johnson takes the inswinging corner, Edin Dzeko produces a header from close range which goes wide of the left-hand upright.89:15
The ball is sent over by Adam Johnson.87:54 Substitution
Substitution Peter Odemwingie goes off and Gonzalo Jara Reyes comes on.85:15
Free kick awarded for a foul by David Silva on Gareth McAuley. Ben Foster takes the free kick.85:13
Effort from 18 yards by David Silva. Blocked by Gareth McAuley.84:38
Centre by David Silva, Nicky Shorey makes a clearance.83:13
Handball by Gareth Barry. Ben Foster takes the free kick.81:47
Corner taken left-footed by David Silva from the left by-line, clearance made by Graham Dorrans.81:47 Substitution
Substitution (Man City) makes a substitution, with Edin Dzeko coming on for James Milner.81:04
The ball is swung over by Pablo Zabaleta, clearance made by Gareth McAuley.79:59 Substitution
Substitution Youssouf Mulumbu leaves the field to be replaced by Graham Dorrans.79:03
Gnegneri Toure Yaya takes a shot. Ben Foster makes a comfortable save.76:23
The ball is sent over by Pablo Zabaleta.75:22
The ball is sent over by Vincent Kompany, clearance made by Gareth McAuley.75:17
The ball is crossed by Gael Clichy, clearance made by Gareth McAuley.73:51
Vincent Kompany restarts play with the free kick.
Substitution Sergio Aguero goes off and Adam Johnson comes on.73:51
Billy Jones concedes a free kick for a foul on Mario Balotelli.72:50
Free kick awarded for a foul by Jonas Olsson on Kolo Toure. Joe Hart restarts play with the free kick.72:27
Jerome Thomas produces a drilled right-footed shot from just inside the box and strikes the post.71:49
Jerome Thomas fouled by Gnegneri Toure Yaya, the ref awards a free kick. Direct free kick taken by Paul Scharner.71:39
Nicky Shorey produces a cross, clearance made by Kolo Toure.70:43
Sergio Aguero takes a shot. Gareth McAuley gets a block in. Effort on goal by Gareth Barry from outside the box goes harmlessly over the bar.68:53
Ben Foster takes the free kick.68:53 Booking
Booking The referee books Gnegneri Toure Yaya for unsporting behaviour.68:48
Gnegneri Toure Yaya gives away a free kick for an unfair challenge on Billy Jones.68:07
The ball is sent over by Nicky Shorey, Gareth Barry manages to make a clearance.67:01
Chris Brunt produces a left-footed shot from outside the penalty box and misses left.66:14
Jerome Thomas fouled by James Milner, the ref awards a free kick. Free kick taken by Peter Odemwingie.65:46
The ball is crossed by Sergio Aguero, Nicky Shorey manages to make a clearance.64:53
Shot by Kolo Toure from outside the box goes high over the target.64:09
Corner taken by David Silva, Nicky Shorey makes a clearance. The ball is swung over by David Silva, Billy Jones manages to make a clearance.63:47
Gael Clichy delivers the ball, clearance by Jonas Olsson.62:05
Corner taken left-footed by Chris Brunt to the near post, clearance by James Milner.59:07
David Silva takes the chance to get an effort at goal. Comfortable save by Ben Foster.58:07 Substitution
Substitution Gareth Barry on for Samir Nasri.57:56
Chris Brunt sends in a cross.56:34
Header from close in by Shane Long misses to the left of the goal.55:25
Peter Odemwingie produces a drilled left-footed shot from 35 yards. Vincent Kompany gets a block in. Outswinging corner taken from the left by-line by Chris Brunt, Vincent Kompany manages to make a clearance.54:44
Free kick awarded for a foul by Billy Jones on Mario Balotelli. Gnegneri Toure Yaya restarts play with the free kick.54:07
The ball is crossed by Jerome Thomas, clearance by Gael Clichy.52:58
Mario Balotelli takes a shot.50:52
Unfair challenge on Mario Balotelli by Billy Jones results in a free kick. Free kick taken by Samir Nasri.49:33
Mario Balotelli produces a cross, clearance made by Gareth McAuley.48:21
The ball is crossed by James Milner.47:58
Samir Nasri decides to take the corner short.47:52
The ball is sent over by Mario Balotelli.45:56
A cross is delivered by Chris Brunt, Gael Clichy makes a clearance.45:01
The referee starts the second half.45:00 +1:09 Half time
Half Time The match has reached half-time.45:00 +0:42
Foul by Mario Balotelli on Nicky Shorey, free kick awarded. Free kick taken by Nicky Shorey.44:40
Corner taken by James Milner, Ben Foster makes a comfortable save.44:33
The ball is crossed by James Milner, blocked by Youssouf Mulumbu.41:11
The ball is sent over by David Silva, clearance by Jonas Olsson.38:49
Unfair challenge on Pablo Zabaleta by Paul Scharner results in a free kick. David Silva restarts play with the free kick.37:39
Peter Odemwingie is ruled offside. Free kick taken by Joe Hart.37:05
Chris Brunt decides to take the corner short.36:45
The ball is sent over by Chris Brunt, Vincent Kompany makes a clearance.33:47
David Silva takes a shot. Blocked by Jonas Olsson.33:48
Mario Balotelli is flagged offside by the assistant referee. Indirect free kick taken by Ben Foster.32:43
Shot by Mario Balotelli from 25 yards. Save by Ben Foster.30:15
Foul by Mario Balotelli on Billy Jones, free kick awarded. Direct free kick taken by Gareth McAuley.29:15
Inswinging corner taken by Samir Nasri from the left by-line played to the near post, Close range headed effort by Gnegneri Toure Yaya goes wide of the left-hand upright.29:01
Corner taken left-footed by Samir Nasri from the right by-line, clearance by Gareth McAuley.28:51
Inswinging corner taken left-footed by David Silva from the right by-line.27:30
Unfair challenge on Mario Balotelli by Paul Scharner results in a free kick. Direct effort from the free kick comes in from Mario Balotelli, blocked by Jonas Olsson.25:53
James Milner takes a short corner.24:49
A cross is delivered by Samir Nasri, clearance by Jonas Olsson.23:57
Shot on goal by David Silva from inside the box goes harmlessly over the target.22:40
Centre by Gael Clichy, Gareth McAuley manages to make a clearance.19:16
The ball is delivered by James Milner.18:02
Corner from the left by-line taken by Chris Brunt, Gnegneri Toure Yaya manages to make a clearance. Jonas Olsson concedes a free kick for a foul on Vincent Kompany. Free kick taken by Joe Hart.17:29
Chris Brunt delivers the ball, Shot by Youssouf Mulumbu. Jonas Olsson gets a block in.17:05
Chris Brunt takes the inswinging corner, save by Joe Hart.16:51
Shot by Paul Scharner. Joe Hart makes a save.16:17
Unfair challenge on Paul Scharner by David Silva results in a free kick. Ben Foster takes the direct free kick.13:37
Samir Nasri takes a shot. Save made by Ben Foster.13:25
Shot by David Silva. Billy Jones gets a block in.12:36
Peter Odemwingie gives away a free kick for an unfair challenge on Pablo Zabaleta. Kolo Toure restarts play with the free kick.11:55
Gael Clichy delivers the ball, James Milner produces a header from the edge of the box and misses to the right of the target.10:30
The assistant referee signals for offside against Shane Long. Free kick taken by Kolo Toure.10:17
Unfair challenge on Paul Scharner by James Milner results in a free kick. Paul Scharner takes the free kick.8:27
Pablo Zabaleta is ruled offside. Ben Foster takes the indirect free kick.5:14
The ball is swung over by Samir Nasri, comfortable save by Ben Foster.3:47
David Silva sends in a cross, Shot from 18 yards from Samir Nasri. Blocked by Jonas Olsson.2:42
Chris Brunt has an effort at goal from just outside the penalty box which goes wide of the left-hand post.0:00
The game begins.
Live data and text provided by our data suppliers