Rashi on Rosh Hashana 17b says:
צדיק - במשפט אמת.
חסיד - נכנס לפנים מן השורה.
Tzaddik - with true justice. Chassid - goes beyond the basic boundary of the law.
So it seems that a Tzaddik keeps all the appropriate rules, but a Chassid goes beyond the letter of the law to do extra good.
Interestingly, in Kallah Rabbati (5:2 or in some versions 8:9) the Beraita asks:
מאי צדיק ומאי חסיד? צדיק בעל צדקות, חסיד גומל חסדים.
I'm not sure how to translate this exactly because it seems to be using the word in its definition. I could not find a commentary who explained the passage. Please leave suggestions in the comments below.