Middlesbrough pair McDonald and Williams on target for different sides
Australian striker McDonald netted an 87th-minute equaliser at the Riverside Stadium as Boro dropped to 12th on the Championship table with just their fifth draw of the campaign.
McDonald, who came on as a second-half substitute for Curtis Main, scored his 12th of the season with a header from Mustapha Carayol's late corner to complete a two-goal fightback from the Teessiders.
Tony Mowbray's side found themselves two goals down in the 17th minute when the ball deflected off defender Rhys Williams from six yards to give Charlton their second of the match following Bradley Pritchard's first-minute opener.
However, Marvin Emnes got one back for Boro with just under 15 minutes remaining before McDonald rescued a point against the ninth-placed Addicks.