The Swiss, who has never dropped a set against the claycourt specialist in their six encounters, won 6-4 6-0 and will meet either France's Richard Gasquet or 2003 French Open champion Juan Carlos Ferrero of Spain for a place in Sunday's final.
Following two exchanges of breaks, Federer stepped up a gear and broke decisively in the ninth game when Ferrer sent a forehand wide.
The second set was a mere formality for the Swiss, who wrapped up the win in 58 minutes.
Monte Carlo Masters
Nadal claims first serve the key
22/04/2007 AT 17:17
"I'm really happy to have won my 500th game here in Monte Carlo," Federer said in a courtside interview.
"David is a very good player. Beating him 6-4 6-0 on clay is very good for me. I like to play against him: he is a good player and I win. It was a good test."
Monte Carlo Masters
Fed: Rafa forces me to improve
22/04/2007 AT 16:39
Monte Carlo Masters
Nadal wins third Monte Carlo title
22/04/2007 AT 12:17