The Englishman, who led after round one, shot a two-under 69 to move to seven under par, one clear of Americans Jason Kokrak and Charley Kaufmann.
Scotland's Russell Knox slipped back to three under with a round of 73.
World number one Jason Day had a disastrous day, making eight bogeys and one double bogey in a 79.
That left the Australian tied for 40th place overall on two over par in South Carolina.
Donald, 38, is without a PGA or European Tour win since 2012, has slipped to 95 in the world rankings and considered retirement last year.
Luke Donald will head into the final round of the RBC Heritage one stroke clear of the field after regaining the lead on day three at Hilton Head.