Conor Washington opened the scoring on the half-hour mark after receiving a pass from Alex Gilbey and turned to beat Dimitar Mitov.
He doubled his tally a minute from time after Cambridge failed to clear a cross and the ball took a ricochet, which fell to Washington, who made no mistake.
Story of the match
Neither team created much in the opening stages of the match with set-pieces the best both could do, but couldn't take advantage of.
Charlton then struck as Gilbey picked out Washington, who turned and fired into the bottom left-handed corner from just inside of the box.
George Williams then found space down the right and after spotting May, neither he nor Joe Ironside, who had a hat-trick in the victory over Cheltenham, could find the target.
Ben Purrington fired over the bar 18 yards out from the left and at the other end, Williams saw his effort blocked from a corner.
Minutes after halftime, the Addicks nearly found a second as Washington ran onto a ball sent in over the top, but Jack Iredale tracked back and got in a key block.
Mitov then produced a fine double save as he denied Elliott Lee from a cross and he stopped Leko's ball across the goal with both sides finding more space to attack.
On the hour mark, the visitors carved out a chance as Harrison Dunk played in May, MacGillivray keeping out his left-footed effort and he stopped the follow-up chance from Williams.
An even better opportunity was presented to Cambridge when Smith was played in on goal by May, but he was stymied by MacGillivray.
Charlton then polished off the game in the 89th minute when Washington completed his brace, beating Mitov through his legs from close range.
Man of the match: Conor Washington
The forward showed good agility to turn and fire home the opener and took advantage of a lapse in defence from Cambridge to score his second. He was a constant threat throughout the game.