If you start with etymologies, you can see that
also co-operate, c.1600, from L.L. cooperatus, pp. of cooperari "to work together with" (see cooperation). Related: Cooperated; cooperating.
1871, back formation from collaborator (1802), from Fr. collaborateur, from L. collaboratus, pp. of collaborare "work with," from com- "with" (see com-) + labore "to work" (see labor). Given a bad sense in World War II. Related: Collaborated; collaborating.
share the meaning coming from "to operate" and "to labor", whose meaning in the "co(m)-" sense is almost indistinguishable.
So, the actual usage is what distinguishes the two words; dictionary entries are almost the same, with the exception from the etymology, that collaborate took a specific meaning during WWII of "cooperate treasonably, as with an enemy occupation force in one's country."
Also, cooperate can be used for when someone is said to simply "be compliant" - without proactive involvement; where collaborate does imply a bit more active involvement ("cooperate" has slightly wider application, which might be directly related to the fact that the word started to be used almost two centuries before "collaborate").