The victory in two hours 46 minutes and 12 seconds moves the South African up to second place in the overall standings, behind team-mate Carlos Sainz who has hit the front after the first day on African soil.
Spaniard Sainz proved his stage two victory on Sunday was no flash in the pan as he brought his VW Touareg home in second place on the 252km special stage from Nador to El Rachidia in Morocco.
Sainz finished 25 seconds adrift of De Villiers, while Mitsubishi’s eight-time Dakar winner Stefan Peterhansel was almost three minutes further back in third place.
Despite moving a minute clear of the chasing pack in the overall standings, Sainz is taking nothing for granted as he heads into day four.
He said: “Your experience tells you that it’s best to remain calm. Nothing has changed since yesterday.
“Dakar is a bit nearer, that’s all. There’s one stage less and I’m satisfied.”
Stage one winner Carlos Sousa, who held the outright lead at the start of the day, finished in sixth place in his Touareg to slip to third in the overall standings, while reigning champion Luc Alphand finished 24 seconds adrift of team-mate Peterhansel, who moved up to an outright fourth place.
“The car is driving well,” said Peterhansel. “But this was quite a high stage, at more than 1000 metres altitude in some places, and I could feel that I wasn’t getting everything out of the car.
“It’s the type of stage which can really mess things up for later. Here, if you aren’t lucky, you can forget it.”
Last year’s winner in the motorcycle category, Marc Coma, claimed his first stage win of the 2007 race, finishing in a little over three hours on the Repsol KTM.
Coma moved into second place in the overall standings, 26 seconds behind compatriot Isidre Esteve on the Gauloises KTM.
Meanwhile, Kamaz driver Vladimir Tchaguine hit the front in the truck category.
The rally stays in Morocco for today’s 679km stage from El Rachidia to Ouarzazate, which features a long 405km special stage among the area’s undulating sand dunes.