There is considerable overlap, but there are distinctions.
Postpone is voluntary, an action initiated by someone who has the authority to delay an existing plan. For example, "Jack decided to postpone the meeting until tomorrow. The game was postponed due to rain."
You can use delay pretty much anywhere you use postpone, but delay doesn't carry the same voluntary connotation. "I was delayed because of heavy traffic." Also, delay can be a noun. "The delay was unforeseeable."
Defer has a suggestion of being de-prioritized. It is a much less common synonym for postpone. It also implies that the action was initiated by someone who has the authority to delay an existing plan, except that the postponement occurred due to something beyond that person's control. For instance, you could possibly say "Jack decided to defer the meeting to a later date because the scribe was called up for jury duty."
While defer and postpone overlap, I think defer and delay do not so much. In other words, you can use delay in all these examples, but defer only fits where postpone also works.