Second-seeded Nadal dropped only two games in his previous two matches, but was tested by the ninth-seeded Ferrero, a two-time Monte Carlo Masters winner.
"To be in the semifinals is a very good start to the clay season," said Nadal, who is still chasing his first title of the year. "I had good control of the ball, when I attacked with the forehand I did well. My serve was much better today."
Ferrero saved two match points before Nadal closed out the contest with a strong serve that Ferrero could only return into the net.
"I think I had the chance to win some more games, but I didn't," Ferrero said. "(Nadal's) always there, he's always where he has to be. He plays better in the important moments."
Nadal next meets David Ferrer in another all-Spanish match. Ferrer defeated Philipp Kohlschreiber 7-5, 7-6 (1).
Nadal stopped Ferrer at the recent Sony Ericsson Open in straight sets. Nadal leads Ferrer 9-3 overall.
The 11th-seeded Ferrer served for the match at 5-4, but Kohlschreiber broke back. Ferrer dominated the tiebreaker and won on his first match point when Kohlschreiber's backhand was out.
Djokovic will play Fernando Verdasco, who defeated Albert Montanes 6-3, 6-7 (4), 6-0.
Verdasco led 5-1 in the second set before Montanes rallied to win the set. Verdasco regained his composure and routed his opponent in the third.
Djokovic served fluently against Nalbandian and was consistent on both first and second serve. He called his performance "one of the best matches I've played in 2010."
His ability to mix it up thwarted Nalbandian's stroke play and disrupted his rhythm.
"He has one of the cleanest, nicest tennis shots on the tour," Djokovic said. "So I (tried) to move him around, get him off balance. I managed to do that, so he made a lot of unforced errors and made my life easier."