Middlesbrough stretched their unbeaten run to six matches, including five clean sheets, courtesy of a long-range effort by Ledesma in the 16th minute which bounced over goalkeeper Yohann Thuram-Ulien.
However, the match was largely a lacklustre affair until the last few minutes, when there were a flurry of chances at both ends.
Charlton carved out the first chance in the second minute as Callum Harriott weaved in from the right and, although Boro man Dean Whitehead tackled him, he then played a poor square ball inside that was cut out by Athletic striker Yann Kermogant, who screwed his 18-yard effort well wide.
Boro’s first glimpse of goal came on seven minutes as forward Curtis Main had a poor pass cut out by defender Lawrie Wilson but then won it back in a tackle on the edge of the box before stabbing a low effort just wide.
Charlton went close as Harriott picked out Jordan Cousins but his 20-yard effort on the turn flew straight at Shay Given.
Straight up the other end, Boro went close as Marvin Emnes burst down the inside right channel to lash an angled 20-yard effort into the side netting.
However, Boro took the lead on 16 minutes as Argentinian wideman Ledesma collected a loose ball 30 yards out and sent in a dipping shot that bounced awkwardly in front of diving keeper Thuram-Ulien and in.
Boro went close to a second on 28 minutes as Mustapha Carayol fired a low shot through a crowd which was blocked by the keeper’s feet before he collected the winger’s second effort on the rebound.
And on the stroke of half-time there was a half-chance for Boro as Ledesma curled a shot wide of the near post.
Boro had another good opening on 49 minutes as Carayol and Main combined to find Whitehead on the edge of the box but the shot screwed high and wide.
The hosts then had a lucky escape on 51 minutes as a free-kick into a crowded box led to a bout of head tennis before the ball fell to Jordan Wood, who slammed just wide from 12 yards out.
Boro could have doubled their lead on 61 minutes as Carayol got to a knockdown but his shot to the far top corner was saved.
Charlton thought they had scored on 70 minutes as Danny Green’s deep cross looked to be drifting out and Kermogant hooked it back into the middle where Simon Church barged it home, but the referee ruled it out for a foul on keeper Given.
Then on 84 minutes Charlton’s Rhoys Wiggins was sent off for a crunching tackle on Whitehead.
Charlton almost snatched a leveller in stoppage time as Kermogant cut in along the byline and drilled across the face of goal but an unmarked Church could not connect.
Straight up the other end, Boro went close as Lukas Jutkiewicz squared for Richie Smallwood but his close range shot was superbly saved.