Un bon, is either:
- a voucher, ticket, or bond that grants access to something.
- the opposite of a bad guy (les bons et les méchants).
Un bien, is either:
- a possession, usually a material one like a good (or goods), but not only.
- or together with a definite article, le bien is also the opposite of the evil (le mal).
Both bon and bien are interjections.
Bon, vous avez fini ?
Bien, vous avez fini ?
The former is rather deprecatory (bon ≈ c'est bien beau tout ça, mais…), whereas bien is basically the same as alright.
Adverbial and adjectival uses
Bon is an adjective. It qualifies a noun and is inflected accordingly.
Une bonne approche requiert de bons outils.
Bien is an adverb, qualifies a verb (or an adjective, or another adverb) and cannot be inflected.
Elle est bien gentille(adj.), mais bien souvent(adv.) elle ne formule(v.) pas bien ses phrases.
Notice that bien can therefore qualify… bon :-)
Ah elle est bien bonne celle là !
As for the translations, truly enough, bon as an adjective most often translates to “good”, even though with a definite article it would in most cases be translated with “right” (C'est la bonne maison – It's the right house). However, bien might be best translated with one of many adverbs. In the above examples it can be translated as enough, quite, well, very, but we could also mention nicely, rightly, fairly, correctly, properly, rather, and so on.
Also be careful that English provides only one comparative, namely better (since the old adverb bet fell into disuse), when French has two; the adjectival form is meilleur(e)(s), and the adverbial form is mieux.
Delicate choice after specific verbs.
A few set phrases involving être:
C'est bon/bien. (here bon stands for “ok” or “good”(taste) and bien for “nice”(not visually); and with a specific stress on bon, or with trop bon, it becomes slang for “fucking enjoyable”).
Il serait bon/bien de… ('d better do it / 'd rather think about it)
and a few grammatical constructions:
Elle est bien [cette maison].
It means the same as “Cette maison est bien” (nice), but it has different connotations as “C'est une bonne maison” (well-made, resistant).
C'est bien qu'[il soit venu].
This one can be compared with c'est souvent que… (souvent is also an adverb).
State verbs (être, paraitre, sembler, etc.) may introduce an adjective as “attribut du sujet”, “attribut du complément”, or could themselves be qualified with an adverb.
Sometimes common sense or experience is needed to disambiguate:
Ça semble bon. (here, bon ≈ OK)
Il semble bien. (here, sembler bien ≈ to “be likely indeed”)
Ça semble bien peu. (here, bien peu ≈ not much)
Il fait bon vivre. / Il est bon vivant.
Notice here that vivant is used as a substantive, therefore the adjective bon is the one expected. Now, in “bon vivre” and in the following set phrase the substantive is somehow implicit (one could think of the “temperature” in the following):
Il fait bon.
In comparison, in the next sentence, il can only refer to someone (it's a personal pronoun), and it is claimed that their actions were right.
Il fait bien.
And also sentir and tenir (and probably a few others).
Ah ce fromage, il sent bien ! (Basically, it stinks.)
Tu sens bon aujourd'hui. (To smell good, avoid using bien here…)
The difference between tenir bon and tenir bien is only a matter of nuance, the former emphasizes endurance, whereas the latter is used in specific situations to ask to hold tight/firmly.