Match ends, Charlton Athletic 0, Bolton Wanderers 0.
Charlton missed the chance to move four points clear of the Championship drop zone as they drew with Bolton.
They created the better chances but Astrit Ajdarevic, Reza Ghoochannejhad, Simon Church and Johnnie Jackson all squandered first-half opportunities.
David Wheater volleyed over for Bolton and Matt Mills had a header cleared off the line for the visitors.
And after more Charlton chances the visitors almost won it but Neil Danns fired over from 12 yards.
Mid-table Bolton came into the game on better form, with four wins in their last five games, compared to Charlton's three defeats out of four. The hosts, however, had more to play for.
They have struggled for goals this season - their 31 Championship strikes is the lowest tally in the division - and it showed yet again as they dominated without being able to finish.
Ajdarevic fired wide and keeper Adam Bogdan did well to block Ghoochannejhad from having a shot. Church also missed a header and Ajdarevic, Ghoochannejhad and Jackson all failed with poor efforts.
Wheater and Mills had chances for Bolton either side of half-time, with Diego Poyet clearing the latter's effort on the goalline.
Charlton thought they should have had a penalty when Bogdan appeared to foul Church, but it was not given.
It took 63 minutes for Charlton to have a shot on target, with Bogdan saving Ghoochannejhad's weak shot, and moments later the keeper had to make his second save, this time from Church.
Ajdarevic had another effort saved and Jordan Cousins, Jon Obika and Michael Morrison all missed the target.
They could have been made to really pay had Danns done better after finding space in front of goal but he scooped his effort over the bar.
Charlton coach Jose Riga: "I think we could have had a penalty. I have looked at it again. Church touched the ball and the keeper kicked his feet.
"Moments like that can give you a win instead of a draw. But to keep clean sheet against a team with one defeat in 12 has a lot of significance.
"We played a game three days ago and having to play against Bolton is not easy so I am happy with a point.
"We have four games left to play so this point can be very important. I have to be confident we will stay up."
Bolton manager Dougie Freedman: "It was a very resilient and dogged performance.
"Charlton kept going, to their credit. They are in a difficult situation and we had to match that. You don't get anything for creating opportunities but we had enough to edge the game.
"In the grand scheme of opportunities, it's not a fair result.
"Dannsy had a great chance, Matt had one cleared off the line, but Charlton put their bodies on the line."
- 8GhoochanneijhadSubstituted forObikaat 65'minutes
- 9ChurchSubstituted forHughesat 84'minutes
- 42AjdarevicSubstituted forGreenat 74'minutes
- 3HuttonSubstituted forBaptisteat 74'minutes
- 31WheaterBooked at 85mins
- 27LeeSubstituted forHallat 89'minutes
- Brendan Malone
- Shots on Target
Second Half ends, Charlton Athletic 0, Bolton Wanderers 0.
Foul by Dorian Dervite (Charlton Athletic).
Lukas Jutkiewicz (Bolton Wanderers) wins a free kick in the attacking half.
Attempt missed. Jonathan Obika (Charlton Athletic) right footed shot from the centre of the box misses to the left. Assisted by Morgan Fox with a cross.
Substitution, Bolton Wanderers. Robert Hall replaces Lee Chung-Yong.
Corner, Bolton Wanderers. Conceded by Lawrie Wilson.
David Wheater (Bolton Wanderers) is shown the yellow card for a bad foul.
Lawrie Wilson (Charlton Athletic) wins a free kick on the right wing.
Foul by David Wheater (Bolton Wanderers).
Substitution, Charlton Athletic. Andy Hughes replaces Simon Church.
Lawrie Wilson (Charlton Athletic) wins a free kick in the defensive half.
Foul by Lukas Jutkiewicz (Bolton Wanderers).
Foul by Danny Green (Charlton Athletic).
Neil Danns (Bolton Wanderers) wins a free kick in the defensive half.
Attempt missed. Neil Danns (Bolton Wanderers) right footed shot from the centre of the box is too high. Assisted by Jermaine Beckford.
Foul by Diego Poyet (Charlton Athletic).
Lee Chung-Yong (Bolton Wanderers) wins a free kick on the left wing.
Substitution, Bolton Wanderers. Alex Baptiste replaces Alan Hutton.
Substitution, Charlton Athletic. Danny Green replaces Astrit Ajdarevic.