Chasing an 11th title in Barcelona, Nadal rarely looked troubled against Garcia-Lopez, racing through the first set in 35 minutes after breaking serve twice.
Two more breaks of serve handed Nadal a 4-0 lead in the second set, and though he dropped serve in the sixth game, a further break handed the 31-year-old victory after one hour and 20 minutes on court.
Up next for Nadal will be Martin Klizan, who beat Spaniard Feliciano Lopez 6-1 6-4.
Earlier in the day, world number five Grigor Dimitrov survived an almighty scare against outsider Malek Jaziri to edge into the quarter-finals by beating the Tunisian 7-5 3-6 7-6(8) following a nail-biting tiebreak.
Jaziri, ranked 88 in the world, hit back after surrendering the first set to comfortably take the second and he looked set to cause the latest high-profile exit in Barcelona when he went 4-2 up against the second seed in the third.
Former world number one Novak Djokovic had been sent packing from the tournament the day before by Martin Klizan while Kei Nishikori was forced to retire during his match on Wednesday with Guillermo Garcia-Lopez with a wrist injury.
Jaziri took a few moments out on the sidelines after experiencing discomfort with his shoulder and consulted his coach as well as a doctor before continuing.
Bulgarian Dimitrov came back to level at 5-5 but was under pressure in the 12th game, before holding on to force the tiebreak.
Dimitrov spurned two match points in the tiebreak and then missed another chance to close out the match two points later when his shot landed just wide.
It was then Jaziri's turn to serve for the match at 8-7 but he sent a shot crashing wide under little pressure.
Dimitrov finally ended Jaziri's resistance on his fourth match point when the Tunisian found the net to bring an end to an epic encounter that lasted two hours 49 minutes.
Last year's runner-up Dominic Thiem also made the last eight, beating Jozef Kovalik of Slovakia 7-6 6-2. Greek Stefanos Tsitsipas meanwhile knocked out Spaniard Albert Ramos Vinolas 6-4 7-5.