He finished seven minutes ahead of his uncle Michal, while father Marek was in 31st position.
Australian Toby Price was third on the stage for Toyota.
Sainz was handed a one-minute 10-second penalty for speeding and finished the stage seventh but ahead of most of his rivals, including Roma in eighth.
The four-time Dakar winner is now 57 seconds behind Roma, who also won on a motorcycle in 2004.
Sweden’s Mattias Ekstrom lost a lot of time with a navigation error and dropped to fifth and 11 minutes and 19 seconds off the pace. Dacia’s nine times world rally champion Sebastian Loeb was sixth.
Spaniard Tosha Schareina won the stage in the motorcycle category for Honda, with KTM’s Argentine rider Luciano Benavides losing the way and his overall lead to Australia’s defending champion Daniel Sanders.
Sanders, also on a KTM, led Honda’s American Ricky Brabec by six minutes and 24 seconds.
The race, which ends this Saturday on the Red Sea coast, is the first round of the World Rally-Raid Championship season.
