A late header by teenager Danny Graham earned Middlesbrough a battling draw with Charlton at the Riverside.
Matt Holland had put the visitors ahead in the 14th minute after his shot took a deflection off Franck Queudrue.
But Middlesbrough peppered the Charlton goal after the break and Chris Riggott stroked home the equaliser.
Shaun Bartlett's strike put Charlton back in front but that lead lasted just six minutes before Graham rushed onto Queudrue's pass to head home.
The match burst to life from the whistle and Charlton defender Hermann Hreidarsson had sight of an open goal after just six minutes.
Hreidarsson received Danny Murphy's free-kick from the right but he crashed his free header wide of the far post.
The Iceland international looked such a danger the Boro bench could be heard issuing frantic instructions to mark him.
Charlton's early pressure paid off when Bartlett received a long ball from Talal El Karkouri in the box and laid it off to Holland who buried his right-footed strike.
Szilard Nemeth, recalled in place of Joseph-Desire Job, was twice denied his chance to get Middlesbrough back on level terms by Dean Kiely.
The striker played a great one-two with Jimmy Floyd Hasselbaink only to see Kiely get down well to smother his shot before directing a header straight into the keeper's arms.
Boro had plenty of time on the ball but the Addicks comfortably mopped up the pressure - with Kiely tipping a Hasselbaink header over the bar - to take their lead into half-time.
Bartlett celebrates his goal but it was not enough for Charlton
It was all one-way traffic after the break at the Riverside as Middlesbrough poured forward and Kiely even saved Hreidarsson's blushes when he palmed the ball away to prevent a Charlton own goal.
But the Addicks keeper could do nothing about Riggott's equaliser in the 74th minute.
The Boro defender looked suspiciously offside as he got on the end of Gareth Southgate's misdirected effort, but despite the Charlton protests his goal stood.
The Addicks did not let their heads drop and Bartlett left the Boro defence standing, picking up Hreidarsson's cross to easily sink his right-footed strike.
But substitute Graham was on hand to grab a share of the points for the home side. The 19-year-old striker nodding home the equaliser - and his first Premiership goal - with five minutes left on the clock.
Middlesbrough boss Steve McClaren:
"I felt we did enough to win the game even though the first half was lacklustre.
"We dominated after the break, the players showed a fantastic response and we should have gone on to win.
"But for (Charlton goalkeeper) Dean Kiely, who made three tremendous saves, we could have scored five or six."
Charlton goalkeeper Dean Kiely:
"To take the lead and then to get penned back, it feels a little bit like a defeat," admitted Kiely.
"We were winning but Middlesbrough kept knocking on the door. But we stood up and credit to us we didn't capitulate.
"We'll kick on now. Our short-term ambition is to progress from the seventh place finish from last year."
Middlesbrough: Nash, Reiziger (Graham 82), Riggott, Southgate, Queudrue, Parlour (Job 86), Doriva, Nemeth (Parnaby 87), Zenden, Downing, Hasselbaink.
Subs Not Used: Cooper, Knight.
Goals: Riggott 74, Graham 86.
Charlton: Kiely, Hreidarsson, Perry, El Karkouri, Young, Konchesky, Murphy (Euell 78), Holland, Kishishev, Thomas (Johansson 72), Bartlett.
Subs Not Used: Fish, Jeffers, Andersen.
Booked: Konchesky, Hreidarsson, Perry.
Goals: Holland 14, Bartlett 80.
Ref: M Riley (W Yorkshire).