For the longest time, I've always treated them like synonym. Now, thinking back, I think I might actually be wrong. For a moment, I thought that a mitzva only referred to mitzvot d'oreita, but there are obviously mitzvot d'rabanan. So, are they synonyms or do they have technical differences in definition?
It seems that the comments, above, explain the meaning of the two words.
Looking at the roots - "Mitzvah" comes from "tzavah" (zvh) meaning "to command". The Torah has mitzvot - commandments, because it states "Do (or don't do) this". rarely does it explain HOW to do or not do something. (Technically, mitzvot lo ta'aseh are "easier" b/c you just don't do what it says not to do. However, it doesn't really work that way, in actuality.... another topic.)
"Halacha" comes from "holech" (hlc) meaning, "to walk" or "to go". In other words, halacha is the WAY to do the mitzvah.
I can see where the terms may be confused because when the Shulchan Aruch states "halacha" in terms of "you should do this" it looks like a mitzvah.
Also, "mitzvah" is sometimes used to mean "good deed" as when your teacher says, "Do you want to do a mitzvah? Please clean the board for me." Of course, there is no mitzvah - commandment that says, "Thou shalt clean the teacher's blackboard when he asks you." There is a mitzvah to honor your teacher. There are halachot explaining HOW to honor your teacher, and, in a sense by helping your teacher, you honor him. But, in the context of this question, the teacher meant, "good deed". He probably should have used the term "chessed" instead of "mitzvah" in this question. Then again, showing "chessed" definitely is a mitzvah.