Good describes a noun (a good idea, a good meal), while well usually describes a verb (she plays well, it went well). The exception is health: when you're describing how someone is feeling, well is an adjective too, as in he hasn't been well. Memory hook: if you can ask "how?", you probably want well; if you're answering "what kind?", you want good.
The core difference
Good is an adjective that describes people, things, or qualities; well is mainly an adverb describing how an action is done.
- good — pleasant, skilled, kind, or fit for use (adjective): He's good at fixing cars.
- well — in a skilful or satisfactory way (adverb): She plays the piano well.
- well — in good health (adjective): He hasn't been well since he caught that cold.
How to tell them apart
The confusion mostly comes from questions like "How are you?", where both good and well get used in everyday speech, but they're doing different jobs. Good is an adjective, so it describes a noun: a good time, a good distance, a good person. Well is usually an adverb, describing how a verb happens: the interview went well, she sings well. The one place well switches to an adjective is health — "I am well" means "I am in good health," not "I did something skilfully."
A handy test: try inserting the word after a verb of action versus a verb of being. "She dances good" sounds wrong because dances is an action needing an adverb — "she dances well" is correct. But "the cake tastes good" is right, because taste here links back to a quality of the cake itself, not a skilfully performed action.