In my opinion lawyer is a very wide term. It refers a person who is skilled in law. lawyer may may be consultant, solicitor, scholar, have done his law degree etc.
However advocate is a term which is vey specific. In India, as per Advocates Act, only can plead in the Court. It is only advocate who can represent other. Therefore all the person practicing are lawyers as well as advocates.