The sixth seed continued his impressive start to the Paris tournament by inflicting a one-sided 6-4 6-3 6-1 defeat on his fellow Spaniard at Roland Garros.
Nadal edged ahead with what proved to be the crucuial break for a 2-1 lead in the first set.
The 28-year-old was ahead again in the first game of the second while Almagro had to wait until the third game for his first break opportunity which was quickly snuffed out.
Former top-10 player Almagro, a three-time quarter-finalist in Paris, has seen his ranking slip to 154 after missing the second half of the 2014 season to undergo foot surgery.
On Thursday, he gradually wilted and despite breaking back for 3-5, Nadal retrieved it immediately for a two-sets advantage.
From then, it was over as a contest as Nadal, with breaks in the second and fourth games, raced to his 68th career win at the tournament.
“I am very happy. I played a great match and was very solid,” said nine-time champion Nadal who has now defeated Almagro 13 times out of 14.
Sixth seed Nadal will face either Austria’s Jurgen Melzer or Andrey Kuznetsov of Russia for a place in the last 16.