狗 (gǒu) and 犬 (quǎn) both mean "dog" and both seem relatively common, but is there any difference between them? When should I use one and when should I use the other?
Huang's answer is great, some addition information here.
犬 usually can be used to say categories of dogs.
狗 usually can be used to refer a specific dog or dogs.
Both of them refer to the same thing, "dog". “狗” is used much more in oral speaking, and “犬” is a formal word that you would see in books.
For the words expressed in a classic(formal) way, you won't see "狗" but "犬".
When a man becomes an Immortal(God), even his pets like chickens and dogs go to the heaven. An analogy that when someone becomes powerful, his fellows would get somehow powerful too. We use it in a critical and negative way.
It's a word you will use to refer to your son in a humble way.In few cases, you will hear this word nowadays.You would say"犬子今年20岁"(my son is 20 years old this year), to show your respect to the listener.(of course, this expression is old-fashioned)
When you hunt in the field, you would take advantage of a hawk(falcon) or a dog(hound) to chase the games for you, so this word is an analogy to say "hired thugs", somone that implements your order [to commit crimes].We use it in a negative way too.
Usually,you will see it in the newspaper or the bulletins and announcements from the government.
狗 is a vulgar(I mean, not classic,not formal) word(in chinese culture, dog is not a good thing), so you will see it more in ordinary life, in oral speaking.
Note: There are few idioms with "狗" instead of "犬".For example, “狗尾续貂", but this word came from a popular oral proverb in its times, so this doesn't violate the viewpoint that “犬" is used formally.
When would you use "狗" or "犬"? Well, these words are fixed, so you have to memorize them.It's good to enlarge your vocabulary to avoid misuse. In most cases, you would use "狗".
These two words has become no difference in meaning now, just by using in different words. In the origin, dog is 犬, and the word 狗 is created later. The difference between them is bigger dogs are called 犬, little dogs are called 狗. And later they are mixed.