Boro, who remain a point and a place ahead of Charlton in the Sky Bet Championship, looked the most likely in the first half but were holding on at the end after playing the final eight minutes a man short following Albert Adomah’s dismissal for a second yellow card offence.
The Teesiders created the first opening on nine minutes when Lee Tomlin and Patrick Bamford combined to set up Adomah, but he fired into the side-netting despite being unmarked in the box.
Addicks skipper Johnnie Jackson was then perhaps fortunate to only concede a corner and not a penalty after what looked a late tackle on Adam Reach.
The visitors continued to ask questions, with Stephen Henderson doing well to get down low to deal with Adomah’s low 25 yard drive before George Friend headed wide from Adam Clayton’s corner.
Friend did well to prevent Andre Bikey-Amougou connecting with Jackson’s free-kick, while at the other end Bamford’s goal-bound long range attempt was deflected agonisingly over.
Tomlin’s scuffed volley from the edge of the area four minutes before the break went inches over Henderson’s bar but there was nothing to separate the two sides at the interval.
Boro came out strongly after the break, but Clayton’s free-kick five minutes after the restart was easily dealt with by the home defence and he was even more wasteful when whipping in another set piece moments later – this time the ball sailing harmlessly behind.
Igor Vetokele did well to shake off his marker inside the area but his low delivery failed to find Frederic Bulot as Charlton launched a rare attack on 59 minutes.
But Henderson was fortunate his defenders came to the rescue when he was caught all at sea from a 64th-minute corner.
Jordan Cousins’ low ball was put behind by Boro’s defence with Vetokele waiting to get on the end of it moments before Jackson made way for George Tucudean as Bob Peeters freshened up his lacklustre attack.
Middlesbrough’s bench protested furiously when they thought Bikey-Amougou had elbowed Bamford, but after consulting with his assistant, referee Gavin Ward decided it was accidental and no card was shown.
Charlton should have taken the lead in the 78th minute when Rhoys Wiggins’ cross was met by Bulot but his effort cannoned back off the inside of the post with Dimi Konstantopoulos beaten.
Adomah picked up his second yellow card of the afternoon for a late lunge on Wiggins having earlier been booked for a foul on Cousins, leaving Middlesbrough a man short for the final eight minutes.
Franck Moussa’s 89th minute cross was gathered by Konstantopoulos under pressure from fellow substitute Lawrie Wilson and Emilio Nsue made a vital interception to prevent Tucudean grabbing a spectacular overhead kick winner.
There was still time for Wilson to produce another save from the Boro keeper and Tucudean also saw a header cleared off the line at the death.
But defeat would have been harsh on a Middlesbrough side who were well worth their point.