I'd say that every co-worker is a colleague, but not every colleague is a co-worker.
The usage depends on context. Within a company, my co-workers would be the people on my team (and likely, people that do a similar job to mine).
When talking to friends about my job, I could refer to all people at the company as my co-workers.
Colleague either is someone you work with in the same team, department or company (again, depending on context) but it can also be someone who works in the same industry or who has a similar job.
The prime minister met his European colleagues at the summit this Wednesday.
In this case, he met prime ministers from European countries. Not people he works with in the same team or office or government.
In that context, the words counterpart is sometimes used when we refer to a specific colleague:
The British prime minister met with his German counterpart on Friday.
Again, these two are not co-workers, but the are colleagues.
If I send out an e-mail within my company to invite you to have a drink with your colleagues, I mean your co-workers; people that work at the same company, maybe even ones in different jobs.
If I create a facebook page where, say, Java programmers can meet their colleagues, it means people that all share the same (kind of) job, not co-workers.
2I agree with @Codeswitcher; colleague implies that they work at your level, and not necessarily at the same place. Co-worker just means that the same organization pays you both. – Greg Schmit – 2018-02-22T17:37:16.903
7I disagree with your initial statement that every co-worker is a colleague. I'm a medical professional; my receptionist is a co-worker of mine, but she is not my colleague. – Codeswitcher – 2015-02-11T21:08:17.393
4@Codeswitcher: I'm in IT, but if my company organizes and event were I can socialize with my colleagues, I expect the receptionist to be there as well. Maybe usage differs geographically? – oerkelens – 2015-02-12T07:36:12.283
4Might. But I have to ask: if you ran into your receptionist at the grocery store, and were chatting, and a third party you know walks up, would you introduce your receptionist, "This is my colleague, so and so?" You could, of course, but would you? – Codeswitcher – 2015-02-13T06:20:58.980
1@Codeswitcher: yes, actually, the word colleague seems to come more natural in that situation than co-worker. For me, co-worker somehow implies a closer relation, implying I'm working directly with that receptionist. But I'm sure YMMV on this one :) – oerkelens – 2015-02-13T07:25:41.857