give the devil his due

[give the devil his due] {v. phr.} To be fair, even to someone whois bad; tell the truth about a person even though you don't like him,

I don't like Mr. Jones, but to give the devil his due, I must admitthat he is a good teacher.