Du Plessis led the side to a series victory in Australia last month, as De Villiers sat out with an elbow injury.
De Villiers, 32, was expected to return for the upcoming series against Sri Lanka, but has not recovered in time.
"His decision to step down confirms his attitude to put the team first," said Cricket South Africa chief executive Haroon Lorgat.
"AB has always carried himself as a true team player."
Wicketkeeper-batsman De Villiers, who has scored 8,074 runs in 106 Tests at an average of 50.46 since his debut in 2004, only captained the Proteas in two Tests after taking over from Hashim Amla during their series defeat by England in January.
He remains the one-day international captain, and is targeting a return ahead of the ODI leg of Sri Lanka's tour of South Africa in January.
"The interests of the team must always outweigh the interests of any individual, including me," he said.
"It was a fantastic honour for me to be asked to captain the Test side but I have missed two series and I am still in doubt for the upcoming series against Sri Lanka.
"Following the squad's outstanding performances in Australia, it is clearly in the greater interests of the team that Faf du Plessis should be confirmed as the permanent Test captain."
Du Plessis, 32, is also captain of the Twenty20 side, and excelled as Test captain in Australia, despite being fined for ball-tampering after the second Test.
Despite being the same age as fellow batsman De Villiers, he did not make his Test debut until 2012, and has scored 2,029 runs in 32 Tests, averaging 43.17.
AB de Villiers has stepped down as captain of South Africa's Test team, with Faf du Plessis taking over.