The world number one next plays another Spaniard, fifth seed David Ferrer, in the quarter-finals.
Garcia-Lopez elected to concentrate on Federer's backhand but the tactic was ruthlessly exploited as the Swiss sprayed the ball around the court at will to seal victory in 52 minutes.
"It's unbelievable how I'm playing at the moment," Federer told reporters after clinching his 21st win in a row. "I was surprised myself about how quickly the match went."
World number 15 Ferrer advanced with a 2-6, 6-3, 6-3 victory over Czech Jiri Novak, the 2004 champion.
The Spaniard has lost all four previous meetings with Federer.
NALBANDIAN WIN
Argentine second seed David Nalbandian remained on course to play Federer in the final after winning a tough match with Spain's Feliciano Lopez.
The world number three came from behind to triumph 6-7, 6-3, 7-6 and set up a meeting with Swiss number two Stanislas Wawrinka.
Federer's Davis Cup team mate had earlier ended Tim Henman's hopes of a third Basel title.
The British number two, who won here in 1998 and 2001, lost 2-6, 7-6, 6-4.
Holder Fernando Gonzalez survived another gruelling encounter to take his place in the last eight.
Taken to three tiebreaks by Italian Simone Bolelli in the first round on Wednesday, the third seed from Chile needed more than two and a half hours to oust American Mardy Fish 6-7, 6-4, 7-6.
Gonzalez progressed after saving six match points in the final set.
Fish, who led the tiebreak 6-2, was rattled by a line call that went against him and continued to berate Swedish umpire Mohamed Lahyani long after surrendering the match on a double fault.
Gonzalez next meets Argentine wildcard Juan Martin Del Potro, who downed local favourite George Bastl 6-3, 6-2.
Thailand's Paradorn Srichaphan will take on Jose Acasuso in the last eight after defeating his fellow Argentine Juan Ignacio Chela 6-4, 6-3.
More from rediff