General synonyms:
* Damage
* Tarnish
* Undermine
* Impugn
* Cast doubt on
* Challenge
* Invalidate
* Debunk
* Expose
* Refute
* Contradict
More formal synonyms:
* Besmirch
* Defame
* Vilify
* Slander
* Calumniate
* Asperge
Informal synonyms:
* Trash
* Put down
* Smear
* Badmouth
The best synonym for "discredit" will depend on the specific situation and the desired level of formality.