I see almost no difference between the two. I googled and found a handful of articles and questions about this topic, written by native Japanese people. But none of the explanations was convincing enough, at least to me.
Both tend to refer to the ability of solving practical problems, not just the ability to memorize something and get high marks on written tests. Both are definitely positive words, and are rarely used sarcastically.
(Derivative words such as お利口【りこう】さん, ずる賢【がしこ】い have different meanings, of course)
Aside from semantics, I feel 賢い is used a little bit more often, especially when it modifies inanimate nouns (賢い使い方, 賢い掃除機, etc).