Crystal Palace and Brighton will head into Monday's Championship play-off semi-final second leg with everything to play for after a goalless draw.
The visitors should have taken the lead through on-loan Southampton midfielder Dean Hammond but he headed straight at Eagles keeper Julian Speroni.
Palace were better after the break, with Brighton's Andrea Orlandi clearing Danny Gabbidon's header off the line.
But Palace lost striker Glenn Murray to an apparently serious knee injury.
Mark BrightBBC Radio 5 live football pundit
"Glenn Murray held his knee straight away when he went down. It looks like he might have damaged ligaments. It's a great shame because to score 30 goals in a season is a fantastic achievement. I think only six Palace players have achieved that."
Murray, who has scored 30 goals during the campaign, was carried off on a stretcher midway through the second half and is likely to miss the second leg.
Brighton, seeking a second promotion in three seasons, will feel they have a slender edge going into next week's return leg in Sussex, having survived a strong second-half Palace performance.
Yet Palace will still hope they can return to the Premier League for the first time since they were relegated from the top tier in 2005, particularly with the dangerous England winger Wilfried Zaha in the side.
In a high-stakes encounter, it was perhaps understandable there was little to choose between the two rival sides in a first half lacking in clear-cut chances but not in effort.
While Palace ended the league season on the back of one win in 10 games, Brighton sprinted over the finishing line with three successive victories.
And the visitors should have taken the lead in the 22nd minute when Will Buckley's pinpoint cross found Hammond lurking on the edge of the six-yard area.
But to the relief of the home fans at Selhurst Park, he could only direct his header straight at goalkeeper Speroni with the net at his mercy.
Why finishing fourth is not good for the play-offs
Brighton may have finished one place above fifth-placed Crystal Palace in the Championship table, but the last team to win promotion to the top tier via the play-offs after finishing fourth were Charlton in 1997-98
Hammond skewed another chance wide in the 33rd minute while in-form striker Murray - signed from Brighton in 2011 - looked a shadow of the player who has caused untold damage to opposition defences this season.
For 50 minutes Holloway's side offered little going forward before Zaha, who
joined Manchester United in January
before being loaned back to Palace for the rest of the campaign, tested former Old Trafford goalkeeper Tomasz Kuszczak with a routine save.
That was the beginning of a decent spell of Palace pressure, during which Jonathan Williams narrowly failed to divert Zaha's delivery across the six-yard area over the line.
Moments later, Orlandi was forced to make a clearance off the line following an inswinging free-kick which Gabbidon headed towards goal.
The loss of Murray, stretchered off in the 66th minute, failed to disrupt Palace's flow as Inigo Calderon had to make a vital clearance following Joel Ward's dangerous cross.
But both sides will have to be more clinical in the second leg at Brighton.
Crystal Palace manager Ian Holloway:
(On Glenn Murray): "The doctors are having a look and he'll need a scan.
"It could be all sorts of things but the doctors fear it is cruciate ligament damage.
"I'm pleased with the performance, and I thought we finished strongly even after losing Glenn.
"We'd have liked a lead but we didn't get one. But it's still all to fight for and all to play for."
Brighton manager Gus Poyet:
"The thing that pleased me most was the first half.
"Normally the home team starts strongly but we played our way and passed the ball and had best chances of the half.
"In the second half I expected that reaction from Palace and it was more difficult for us.
"But we defended well and showed we are a very difficult team to beat."
Full Time The referee blows for the end of the match.
Aaron Wilbraham gives away a free kick for an unfair challenge on Matthew Upson. Direct free kick taken by Tomasz Kuszczak.
The ball is crossed by Wilfried Zaha.
The ball is crossed by Kazenga LuaLua, save made by Julian Speroni.
Free kick awarded for an unfair challenge on Ashley Barnes by Mile Jedinak. Free kick taken by Matthew Upson.
Free kick awarded for a foul by Kazenga LuaLua on Mile Jedinak. Julian Speroni takes the free kick.
Yannick Bolasie has an effort at goal from outside the area which misses left.
Corner taken by Yannick Bolasie.
Free kick awarded for a foul by Aaron Wilbraham on Liam Bridcutt. Matthew Upson takes the direct free kick. Free kick awarded for an unfair challenge on Kevin Phillips by Liam Bridcutt. Direct free kick taken by Julian Speroni.
Matthew Upson fouled by Yannick Bolasie, the ref awards a free kick. Direct free kick taken by Tomasz Kuszczak.
Substitution Ashley Barnes on for Andrea Orlandi.
Substitution (Crystal Palace) makes a substitution, with Kevin Phillips coming on for Owen Garvan.
David Lopez gives away a free kick for an unfair challenge on Wilfried Zaha. Free kick crossed by Owen Garvan, Wayne Bridge manages to make a clearance.
The ball is swung over by Dean Hammond, clearance by Damien Delaney.
Foul by David Lopez on Yannick Bolasie, free kick awarded. Owen Garvan takes the free kick. Corner taken right-footed by Yannick Bolasie, save made by Tomasz Kuszczak.
Free kick awarded for an unfair challenge on Kazenga LuaLua by Joel Ward. Tomasz Kuszczak restarts play with the free kick.
Kagisho Dikgacoi takes a shot. Inigo Calderon manages to make a clearance.
Clearance made by Jose Ulloa.
Substitution (Crystal Palace) makes a substitution, with Yannick Bolasie coming on for Jonathan Williams.
Corner taken by Owen Garvan from the left by-line,
Substitution Kazenga LuaLua replaces Will Buckley.
Dean Hammond has an effort at goal. Julian Speroni makes a comfortable save.
Dean Hammond takes the chance to get an effort at goal. Save made by Julian Speroni.
Free kick awarded for a foul by Owen Garvan on Tomasz Kuszczak. Tomasz Kuszczak takes the direct free kick.
Substitution Glenn Murray leaves the field to be replaced by Aaron Wilbraham.
Booking Tomasz Kuszczak is given a yellow card.
Corner taken right-footed by Jonathan Williams, Tomasz Kuszczak makes a save.
Will Buckley produces a cross.
Wayne Bridge concedes a free kick for a foul on Jonathan Williams. Owen Garvan sends in a cross, Daniel Gabbidon takes a shot. Save by Tomasz Kuszczak.
Kagisho Dikgacoi gives away a free kick for an unfair challenge on Will Buckley. The free kick is swung in right-footed by David Lopez. The official flags Jose Ulloa offside. Julian Speroni takes the free kick.
David Lopez decides to take the corner short.
Wilfried Zaha delivers the ball.
Liam Bridcutt challenges Joel Ward unfairly and gives away a free kick. Owen Garvan takes the free kick.
Free kick awarded for an unfair challenge on Matthew Upson by Glenn Murray. Direct free kick taken by Tomasz Kuszczak.
Short corner taken by Wilfried Zaha.
Wilfried Zaha takes a shot from 20 yards. Tomasz Kuszczak makes a comfortable save.
Wilfried Zaha fouled by Gordon Greer, the ref awards a free kick. Dean Moxey restarts play with the free kick.
Corner taken left-footed by Andrea Orlandi, Owen Garvan manages to make a clearance.
The second half kicks off.
45:00 +1:05 Half time
Half Time The ref blows to end the first period.
Owen Garvan takes a shot. Blocked by Liam Bridcutt.
The ball is delivered by Jonathan Williams.
Free kick taken by Owen Garvan.
Booking Inigo Calderon goes into the referee's book for unsporting behaviour.
Inigo Calderon concedes a free kick for a foul on Jonathan Williams.
Direct free kick taken by Tomasz Kuszczak.
Booking Booking for Mile Jedinak for unsporting behaviour.
Mile Jedinak gives away a free kick for an unfair challenge on David Lopez.
Free kick awarded for a foul by Wayne Bridge on Wilfried Zaha. Joel Ward takes the direct free kick.
Dean Hammond has shot on goal from just outside the penalty box which goes wide of the right-hand upright.
Free kick awarded for an unfair challenge on Wilfried Zaha by Will Buckley. Damien Delaney takes the direct free kick.
Liam Bridcutt concedes a free kick for a foul on Damien Delaney. Julian Speroni restarts play with the free kick.
Foul by Mile Jedinak on Dean Hammond, free kick awarded. David Lopez crosses the ball in from the free kick.
Glenn Murray takes a shot. Blocked by Matthew Upson. Shot from 20 yards by Kagisho Dikgacoi. Blocked by Gordon Greer.
Jose Ulloa is penalised for a handball. Julian Speroni takes the free kick.
David Lopez sends in a cross, clearance made by Daniel Gabbidon.
Liam Bridcutt fouled by Mile Jedinak, the ref awards a free kick. Andrea Orlandi crosses the ball from the free kick left-footed from right channel.
Dean Hammond takes a shot. Save made by Julian Speroni.
Liam Bridcutt gives away a free kick for an unfair challenge on Owen Garvan. Owen Garvan restarts play with the free kick.
Will Buckley fouled by Kagisho Dikgacoi, the ref awards a free kick. Direct free kick taken by David Lopez.
Dean Moxey gives away a free kick for an unfair challenge on Jose Ulloa. David Lopez delivers the ball from the free kick right-footed from right wing, Damien Delaney manages to make a clearance. Liam Bridcutt produces a right-footed shot from outside the penalty box and misses wide left of the target.
Shot from outside the area by Jonathan Williams misses to the left of the goal.
Free kick awarded for an unfair challenge on Will Buckley by Jonathan Williams. Free kick crossed by David Lopez, Glenn Murray makes a clearance.
The ball is swung over by Wayne Bridge, Daniel Gabbidon manages to make a clearance.
Kagisho Dikgacoi fouled by Dean Hammond, the ref awards a free kick. Mile Jedinak takes the direct free kick.
Header from close in by Jose Ulloa misses to the right of the goal.
Free kick awarded for a foul by Owen Garvan on Will Buckley. David Lopez restarts play with the free kick. The offside flag is raised against Jose Ulloa. Julian Speroni restarts play with the free kick.
Owen Garvan produces a cross, comfortable save by Tomasz Kuszczak.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.