Bottom club Bristol City put in an impressive display to hold play-off chasing Brighton to a goalless draw.
Despite netting four against Huddersfield on Saturday, Brighton looked out of sorts and failed to trouble City keeper Tom Heaton.
The hosts saw two diving headers from captain Marvin Elliott and a powerful volley from Liam Kelly stopped by Seagulls keeper Tomasz Kuszczak.
Brendan Moloney also had a shot deflected just wide in the second half.
The result means Brighton, now unbeaten in six games, remain in the final play-off place and the Robins stay bottom of the Championship, three points from safety.
But despite their lowly position, City are now unbeaten in five home games and look invigorated and organised under head coach Sean O'Driscoll, who arrived in January.
After a cagey opening 15 minutes the hosts took hold of the game, Cole Skuse seeing two attempts blocked by the Seagulls defence following a Paul Anderson corner, before Anderson himself shot straight at Kuszczak from the edge of the box.
Kelly then saw his fierce volley fly into the hands of the Polish keeper, who was bundled into the net by City striker Jon Stead.
At the other end, Andrea Orlandi tried his luck with a forceful drive but it was easily saved by keeper Heaton.
Brighton were forced to introduce Saturday's hat-trick hero Leonardo Ulloa just before half-time after top-scorer Craig Mackail-Smith limped off with a knee injury.
But the Argentine was unable to make the same impact he showed against Huddersfield, and his team also failed to improve in the second half.
While City pushed to break the deadlock - Moloney's volley wide their best chance - Brighton were wasteful with the few opportunities they created.
Will Buckley looked lively but had lacked options going forward, while David Lopez's sloppy free-kick was skewed across goal without contact from his team-mates.
City continued to press for the win, but missed the opportunity to grab a much-needed three points.
Bristol City manger Sean O'Driscoll: "The players gave everything and no one would have known which team were bottom and which battling for promotion.
"We have now kept successive clean sheets in goalless games with good sides. That is a big change from earlier in the season and the players have taken on board what I have asked of them.
"We now need that bit of extra quality, but if we keep on showing that level of commitment we will have a chance of surviving in the Championship."
Brighton manager Gus Poyet: "It looks bad. Craig could be out for two or three months so his season may be over.
"I don't like the emergency loan system, but I am not so stupid that I won't use it as we are now very short of strikers.
"I'll start looking for a new striker tomorrow. It was meant to be my day off, but now I expect to spend most of it on the phone.
"The result is everything. We couldn't pass the ball on the night and didn't play well, but we did the basics right to get a precious point."
Live Text Commentary
Full Time The referee signals the end of the game.89:19
Corner taken right-footed by Albert Adomah from the left by-line, Jose Ulloa manages to make a clearance.88:12 Substitution
Substitution Sam Baldock is brought on as a substitute for Paul Anderson.84:02 Substitution
Substitution Albert Adomah on for Stephen Pearson.83:46
Effort from the edge of the area by Paul Anderson goes wide of the right-hand upright.76:21
The referee blows for offside against Andrea Orlandi. Tom Heaton takes the indirect free kick.75:23
Paul Anderson concedes a free kick for a foul on Dean Hammond. Tomasz Kuszczak restarts play with the free kick.74:55
Free kick awarded for a foul by Jose Ulloa on Brendan Moloney. Indirect free kick taken by Tom Heaton.69:47
Greg Cunningham gives away a free kick for an unfair challenge on Will Buckley. Indirect free kick taken by Moreno David Lopez.67:19
Free kick awarded for an unfair challenge on Matthew Upson by Jon Stead. Tomasz Kuszczak takes the free kick.66:24
Foul by Dean Hammond on Brendan Moloney, free kick awarded. Free kick taken by Tom Heaton.64:54
Lewin Nyatanga produces a right-footed shot from deep inside the penalty box which goes wide of the left-hand post.64:06
Foul by Jose Ulloa on Liam Fontaine, free kick awarded. Tom Heaton restarts play with the free kick.63:03
Jose Ulloa challenges Liam Fontaine unfairly and gives away a free kick. Free kick taken by Tom Heaton.59:44
Corner taken by Paul Anderson, clearance made by Jose Ulloa.58:59
Stephen Pearson produces a right-footed shot from the edge of the box and misses to the right of the target.58:35
Inswinging corner taken by Stephen Pearson.58:15
Jon Stead takes a shot. Blocked by Matthew Upson.56:52
The assistant referee signals for offside against Matthew Upson. Tom Heaton takes the indirect free kick.56:14
Liam Kelly concedes a free kick for a foul on Jose Ulloa. Free kick taken by Moreno David Lopez.
Outswinging corner taken from the left by-line by Andrea Orlandi.53:39
Liam Kelly takes a shot. Comfortable save by Tomasz Kuszczak.52:31
Jose Ulloa concedes a free kick for a foul on Lewin Nyatanga. Lewin Nyatanga takes the indirect free kick.50:28
Corner taken by Stephen Pearson from the right by-line.46:47
Shot from just outside the area by Paul Anderson goes over the bar.45:31
Outswinging corner taken by Moreno David Lopez from the right by-line, clearance made by Paul Anderson.45:01
The referee starts the second half.45:00 +3:13 Half time
Half Time The whistle is blown to end the first half.45:00 +2:56
Marvin Elliott takes a shot. Save by Tomasz Kuszczak.45:00 +2:30
The offside flag is raised against Jose Ulloa. Free kick taken by Tom Heaton.45:00 +1:11
Matthew Upson takes the indirect free kick.45:00 +1:11 Substitution
Substitution Jose Ulloa is brought on as a substitute for Craig Mackail-Smith.45:00 +1:11
Liam Kelly concedes a free kick for a foul on Will Buckley.42:07
Foul by Liam Bridcutt on Marvin Elliott, free kick awarded. Greg Cunningham delivers the ball, Marvin Elliott produces a header from inside the area that goes over the crossbar.39:05
Foul by Dean Hammond on Cole Skuse, free kick awarded. Brendan Moloney restarts play with the free kick.35:42
Corner taken left-footed by Stephen Pearson.31:48
Jon Stead challenges Tomasz Kuszczak unfairly and gives away a free kick. Tomasz Kuszczak restarts play with the free kick.31:27
Shot by Liam Kelly. Save made by Tomasz Kuszczak.30:55
Inswinging corner taken by Stephen Pearson, save by Tomasz Kuszczak.27:17
Craig Mackail-Smith is flagged offside by the assistant referee. Indirect free kick taken by Tom Heaton.26:40
Free kick awarded for a foul by Bruno Saltor on Stephen Pearson. Free kick taken by Greg Cunningham.25:51
Outswinging corner taken by Paul Anderson, fantastic save by Tomasz Kuszczak.25:23
Brendan Moloney takes a shot. Save by Tomasz Kuszczak.18:50
Paul Anderson takes a shot. Comfortable save by Tomasz Kuszczak.15:09
Cole Skuse takes a shot. Adam El-Abd gets a block in.14:57
Cole Skuse takes a shot. Liam Bridcutt gets a block in.14:25
Corner taken short by Paul Anderson.10:01
Paul Anderson concedes a free kick for a foul on Inigo Calderon. Indirect free kick taken by Inigo Calderon.7:13
Unfair challenge on Adam El-Abd by Jon Stead results in a free kick. Moreno David Lopez takes the indirect free kick.3:51
Free kick awarded for a foul by Stephen Pearson on Bruno Saltor. Bruno Saltor takes the free kick.2:03
Unfair challenge on Bruno Saltor by Marvin Elliott results in a free kick. Free kick taken by Adam El-Abd.0:00
The game begins.
Live data and text provided by our data suppliers