Tener is the verb of having: what you own, how old you are, how you feel. Haber is a grammar verb: it builds the perfect tenses, and it says what there is.
Where the choice changes the meaning
| Context | tener | haber |
|---|---|---|
| Possession | Tengo un coche. | Not used. |
| Perfect tenses | Not the auxiliary. | He hablado — haber plus a participle, in every perfect tense. |
| There is, there are | Not used. | Hay tres — always singular, whatever follows it. |
| The same in the past | Tenía un coche — I had one. | Había tres — there were three. |
| Obligation | Tengo que salir — I must go. | Hay que salir — one must go, whoever it is. |
| Age, hunger, cold | Tengo 30 años, tengo hambre. | Not used. |