Rafael Nadal reached the semi-finals of the Madrid Open after coming out on top in an all-Spanish affair with David Ferrer 4-6 7-6 6-0.