The 55-year-old, the father of Renault Formula One driver Carlos Sainz Jr, just needs a safe drive on the final day around Cordoba in Argentina to secure a second Dakar title and first since 2010, having failed to finish for the last five years in a row.
His task was made easier by problems for team-mate Stephane Peterhansel on Friday, as the French reigning champion hit a tree near the start and was stranded for 40 minutes.
Peterhansel, a 13-time winner across the cars and bikes categories, started the day in second overall but finished it outside the podium places for the first time since the start of the rally in Lima.
That left Sainz 46 minutes clear of 2012 Olympic shooting medallist Al-Attiyah, with South African Giniel de Villiers rounding out the top three after coming third on Friday.
Austria's Matthias Walkner will take a 20-minute lead into the final day of the bikes race, after finishing fourth behind stage 13 winner Toby Price.
Australian Price, who won the Dakar in 2016 but didn't complete the rally last year, held off home favourite Kevin Benavides to win from San Juan to Cordoba.
KTM rider Walkner finished over 11 minutes behind Price on the day but will take a lead of over 20 minutes into Saturday's final 284-kilometre ride around Cordoba as he looks for a maiden Dakar title after taking second 12 months ago.