Crystal Palace extended their unbeaten run in all competitions to eight matches after a goalless draw with Portsmouth at Selhurst Park.
It left Portsmouth still looking for their first Championship away win despite shading a game of few chances.
Portsmouth defender Ricardo Rocha blocked a shot from Nathaniel Clyne before the visitors took control and Jason Pearce headed against the bar.
But fourth-placed Palace held on for an impressive sixth straight clean sheet.
Dougie Freedman's men made the brighter start with teenager Wilfried Zaha again looking dangerous in the Palace attack.
With 24 minutes gone Pearce's slip let in Zaha and he cut the ball back for Clyne, who saw his shot blocked by the alert Rocha.
The visitors came agonisingly close to taking the lead when an excellent free-kick from Liam Lawrence was met by Pearce but his looping header cannoned off the post.
Pompey finished the half as the stronger side and Luke Varney almost got clear from Lawrence's through-ball but home keeper Julian Speroni was quick off his line to collect.
Neither side took control at the start of the second half but Portsmouth had a half-chance when Joel Ward mis-hit a cross which Speroni had to claw away.
The game then descended into a war of attrition with both sides giving the ball away and cancelling each other out.
Freedman tried to inject some spark into his side's display by bringing Sean Scannell on for Jonathan Parr but the Eagles struggled to create any meaningful chances.
Varney got away down the right and Speroni came rushing off his line but the Pompey frontman failed to get the lift on his shot with the goal gaping.
Palace pushed forward, winning a succession of corners, but the Portsmouth defence stood firm and both sides had to settle for a point.
Live Text Commentary
Full Time The referee signals the end of the game.90:00 +3:20
Free kick awarded for an unfair challenge on Joel Ward by Wilfried Zaha. Stephen Henderson restarts play with the free kick.90:00 +2:40
The assistant referee flags for offside against Luke Varney. Julian Speroni restarts play with the free kick.90:00 +1:51
The offside flag is raised against Jermaine Easter. Free kick taken by Stephen Henderson.90:00 +1:14
A cross is delivered by Erik Huseklepp, Header on goal by Dave Kitson from inside the box goes harmlessly over the target.90:00 +0:52
Corner taken right-footed by Erik Huseklepp from the left by-line, Glenn Murray makes a clearance.89:52
Dean Moxey takes a shot. Tal Ben-Haim gets a block in.87:21
Outswinging corner taken right-footed by Sean Scannell, Erik Huseklepp manages to make a clearance.87:02
Dean Moxey takes a shot. Luke Varney gets a block in.86:34
Corner taken by Sean Scannell from the left by-line, Jason Pearce makes a clearance.86:14
Jermaine Easter takes a shot. Blocked by Ricardo Rocha.85:24
Erik Huseklepp delivers the ball, David Wright makes a clearance.84:52
Joel Ward takes a shot. Julian Speroni makes a save.84:05
Glenn Murray concedes a free kick for a foul on Ricardo Rocha. Stephen Henderson restarts play with the free kick.83:43
The referee gives a free kick against Luke Varney for handball. Julian Speroni takes the indirect free kick.82:23 Substitution
Substitution Erik Huseklepp joins the action as a substitute, replacing Liam Lawrence.80:15
Foul by Liam Lawrence on Dean Moxey, free kick awarded. Julian Speroni takes the indirect free kick.79:32
Patrick McCarthy restarts play with the free kick.79:32 Booking
Booking Luke Varney is shown a yellow card.79:14
Free kick awarded for a foul by Luke Varney on Jermaine Easter.
Unfair challenge on Jermaine Easter by Ricardo Rocha results in a free kick. Free kick taken by David Wright.77:02
Luke Varney takes a shot. Save made by Julian Speroni.76:05
Corner from the right by-line taken by Liam Lawrence, Dean Moxey makes a clearance.74:48
David Wright concedes a free kick for a foul on Luke Varney. Liam Lawrence shoots direct from the free kick, blocked by Kagisho Dikgacoi.72:58 Substitution
Substitution Darren Ambrose leaves the field to be replaced by Jermaine Easter.71:16 Booking
Booking Booking for David Norris for unsporting behaviour.70:57
David Norris concedes a free kick for a foul on Kagisho Dikgacoi. Patrick McCarthy takes the free kick.69:41
Tal Ben-Haim gives away a free kick for an unfair challenge on Wilfried Zaha. Darren Ambrose crosses the ball in from the free kick, clearance made by Aaron Mokoena.67:41
David Wright concedes a free kick for a foul on Dave Kitson. Aaron Mokoena takes the indirect free kick.66:29
Foul by Glenn Murray on Jason Pearce, free kick awarded. Free kick taken by Stephen Henderson.65:41 Booking
Booking The referee shows Dean Moxey a yellow card.63:45
Liam Lawrence has an effort at goal from outside the area which goes wide right of the goal.62:48
Clearance made by Anthony Gardner.62:48 Booking
Booking Anthony Gardner is shown a yellow card for unsporting behaviour.62:30
Liam Lawrence takes a inswinging corner from the right by-line played to the near post,62:10
Liam Lawrence takes a shot. Blocked by Anthony Gardner.59:04
Corner taken by Darren Ambrose, clearance by Joel Ward.57:56 Substitution
Substitution Sean Scannell replaces Jonathan Parr.57:56
Aaron Mokoena gives away a free kick for an unfair challenge on Wilfried Zaha. Darren Ambrose restarts play with the free kick.57:14
Dave Kitson is flagged offside by the assistant referee. Free kick taken by Julian Speroni.56:36
Darren Ambrose handles the ball and concedes a free kick. Direct free kick taken by Liam Lawrence.55:03
Kagisho Dikgacoi gives away a free kick for an unfair challenge on Joel Ward. Liam Lawrence takes the direct free kick.53:30
Hayden Mullins fouled by Dean Moxey, the ref awards a free kick. Indirect free kick taken by Stephen Henderson.52:29
Outswinging corner taken by Liam Lawrence, clearance made by Patrick McCarthy.52:17
The ball is sent over by Joel Ward, Julian Speroni makes a clearance.49:33
Glenn Murray is penalised for a handball. Stephen Henderson takes the indirect free kick.49:24
Nathaniel Clyne sends in a cross.49:09
The ball is sent over by Dean Moxey.45:15
Liam Lawrence gives away a free kick for an unfair challenge on Dean Moxey. Free kick taken by Julian Speroni.45:01
The match restarts for the second half.45:00 +1:07 Half time
Half Time The whistle is blown to end the first half.44:58
The official flags Glenn Murray offside. Stephen Henderson takes the indirect free kick.44:01
The ball is crossed by Tal Ben-Haim.42:08
Dave Kitson is flagged offside by the assistant referee. Free kick taken by Julian Speroni.41:39
Inswinging corner taken by Liam Lawrence from the left by-line played to the near post, clearance made by David Wright.41:19
Centre by Darren Ambrose, clearance made by Jason Pearce.38:40
Free kick awarded for an unfair challenge on Patrick McCarthy by Luke Varney. Julian Speroni takes the indirect free kick.37:49
Corner taken right-footed by Liam Lawrence, clearance made by Anthony Gardner.37:34
Tal Ben-Haim takes a shot. Kagisho Dikgacoi gets a block in.35:22
Outswinging corner taken right-footed by Darren Ambrose from the right by-line to the near post.34:40
The referee blows for offside against Luke Varney. Anthony Gardner restarts play with the free kick.33:03
Liam Lawrence crosses the ball, Patrick McCarthy makes a clearance.31:21
Centre by Luke Varney, free kick awarded for an unfair challenge on Anthony Gardner by Dave Kitson. Julian Speroni restarts play with the free kick.29:12
Aaron Mokoena produces a cross, Nathaniel Clyne manages to make a clearance.27:20
Unfair challenge on Luke Varney by David Wright results in a free kick. Direct free kick taken by Liam Lawrence.25:41
Tal Ben-Haim produces a cross, Liam Lawrence produces a header from deep inside the six-yard box that clears the crossbar.24:38
The assistant referee flags for offside against Dave Kitson. Anthony Gardner takes the indirect free kick.24:11
Wilfried Zaha takes a shot. Blocked by Ricardo Rocha.22:11
The ball is sent over by Jonathan Parr.20:59
Wilfried Zaha challenges Jason Pearce unfairly and gives away a free kick. Free kick taken by Stephen Henderson.17:35
Unfair challenge on Ricardo Rocha by Glenn Murray results in a free kick. Stephen Henderson takes the indirect free kick.16:17
Dave Kitson challenges Anthony Gardner unfairly and gives away a free kick. Indirect free kick taken by Julian Speroni.15:37
Hayden Mullins fouled by Glenn Murray, the ref awards a free kick. Free kick taken by Stephen Henderson.14:59
The ball is crossed by Dean Moxey, Stephen Henderson makes a clearance.14:21
Hayden Mullins sends in a cross, clearance by Patrick McCarthy.13:27
Centre by Jason Pearce.12:11
Glenn Murray gives away a free kick for an unfair challenge on Ricardo Rocha. Indirect free kick taken by Stephen Henderson.10:20
Free kick awarded for an unfair challenge on Joel Ward by Glenn Murray. Tal Ben-Haim restarts play with the free kick.7:35
Liam Lawrence produces a right-footed shot from just outside the area that goes harmlessly over the target.7:02
Foul by Joel Ward on Darren Ambrose, free kick awarded. Julian Speroni restarts play with the free kick.5:53
Darren Ambrose takes a outswinging corner to the near post.5:45
The ball is sent over by Darren Ambrose, Ricardo Rocha manages to make a clearance.4:09
Foul by Hayden Mullins on Wilfried Zaha, free kick awarded. David Wright takes the free kick.2:24
Jason Pearce challenges Wilfried Zaha unfairly and gives away a free kick. Direct free kick taken by Darren Ambrose.1:08
The ball is swung over by Wilfried Zaha, Ricardo Rocha manages to make a clearance.0:17
The ball is crossed by Liam Lawrence, clearance made by Nathaniel Clyne.0:00
The game kicks-off.
Live data and text provided by our data suppliers