Scott McDonald’s late header rescued a point for Middlesbrough and put the brakes on Charlton’s storming finish to the npower Championship season.
Australian striker McDonald, a 54th-minute replacement for Curtis Main, headed home Mustapha Carayol’s corner in the 87th minute to equalise as Boro hit back from two goals down.
Bradley Pritchard lashed home his third goal of the season after only 32 seconds to give Charlton a flying start before Rhys Williams’ own goal in the 17th minute put the visitors firmly in control.
Boro forward Marvin Emnes struck his first goal of the year in the 76th minute to set up a grandstand finish before McDonald’s late effort, but Charlton held on to stretch their unbeaten away run to seven matches.
Chris Powell’s side started the day five points off the top six, but have fallen just short in their bid to gatecrash the play-offs with one game left to play.
Middlesbrough’s form could not be in starker contrast. Promotion candidates for the first half of the season, Tony Mowbray’s side have won only three league games this year and have lost seven of their last 10 league fixtures.
Defenders Andre Bikey and Adam Reach, strikers Marvin Emnes and Main and midfielder Grant Leadbitter returned for Boro.
Danny Hollands made his first start for Charlton since October and fellow midfielder Mark Gower, on loan from Swansea, made his full debut for the club.
Charlton made a lightning start and were ahead after just half a minute.
Visiting striker Ricardo Fuller went on a marauding run down the left and when he pulled the ball back across the penalty area from the by-line, Pritchard smashed the ball home with a right-footed shot, high into the roof of the net from 12 yards.
Boro responded well as striker Mustapha Carayol blazed a shot just over the crossbar and then forced Charlton goalkeeper Ben Hamer into a fine save with an angled drive from 20 yards.
But the home side were sent reeling again in the 17th minute when defender Williams put the ball past his own goalkeeper Jason Steele.
Charlton forward Yann Kermorgant fired over a low cross from the right and the ball deflected off Williams into the net from six yards.
Pritchard curled another effort just wide and at the other end Reach drilled in a left-footed shot from 25 yards, which Hamer did well to hold.
Boro substitutes McDonald and Emmanuel Ledesma replaced Main and Reach shortly after half-time and made an instant impact.
McDonald had two well-struck shots saved by Hamer and then crossed for Ledesma, who pulled his effort from inside the penalty area just wide.
But in between, Fuller headed Kermorgant’s cross inches over the crossbar as Charlton threatened on the break.
Emnes threw Boro a lifeline with 14 minutes left, converting Leadbitter’s cross from the right high into the net from close range, before being replaced in a tactical switch by Luke Williams.
Boro then salvaged a point as McDonald headed home Carayol’s corner in the 87th minute, while there was still time for Carayol and then Hollands at the other end to go close to snatching all three points.