In modern Brazilian Portuguese, the verb haver has shrunk to a handful of forms with three main jobs: formal existence (há muitas pessoas aqui), elapsed time (moro aqui há três anos), and "ago" (há três anos fui ao Rio). The form you will meet far more than any other is the present há. This page drills the existential and temporal uses of haver, and unpacks the one feature that genuinely confuses learners: há in time expressions can point in two opposite directions — "for X time up to now" and "X time ago" — using the very same word.
The forms that survive
As an existential and temporal verb, haver is impersonal — it has no subject and stays in the third-person singular. You only really need three forms:
| Tense | Form | Use |
|---|---|---|
| Present | há | there is/are (formal); duration up to now; "ago" |
| Imperfect | havia | there was/were (formal, past state) |
| Preterite | houve | there was/were (a past event that occurred) |
All three are invariable: they never pluralize, even when many things exist. Há um problema and há vários problemas both use há.
1. Formal existence
Há is the formal/written "there is/are." In Brazil it lives in essays, news, signage, and careful speech — where conversation would use tem.
Há muitas pessoas interessadas na vaga de estágio.
There are many people interested in the internship position.
Não há motivo para preocupação.
There is no reason to worry.
Havia poucos clientes na loja àquela hora.
There were few customers in the store at that hour.
That last one uses the imperfect havia for a past state ("there were [customers present]"). It is the formal twin of colloquial tinha.
2. Houve — a past event that occurred
The preterite houve reports something that happened in the past — an event with a clear occurrence, as opposed to a lingering state. Use houve for accidents, meetings, changes, fights; use havia for backdrop conditions.
Houve um acidente grave na rodovia ontem à noite.
There was a serious accident on the highway last night.
Houve mudanças importantes na empresa este ano.
There were important changes at the company this year.
The contrast with havia mirrors the preterite/imperfect distinction throughout Portuguese: houve uma festa = a party took place (event); havia uma festa = a party was going on / existed as backdrop (state).
3. Há for time — the two-direction trap
This is the heart of the page. In time expressions, há means roughly "it has been [duration]" — but the tense of the main verb flips its meaning between two opposite ideas.
(a) "for X time, up to now" — with a present-tense verb
When the action is still ongoing, you use a present-tense main verb plus há + duration. This is how Portuguese says "I have been doing X for [time]."
Moro no Rio há três anos.
I have been living in Rio for three years. (and still do)
Estudo português há seis meses.
I've been studying Portuguese for six months.
Não vejo a minha prima há muito tempo.
I haven't seen my cousin in a long time.
Notice the English structure: "I have been living... for three years." Portuguese uses the present (moro), not a perfect tense, plus há. This is a major divergence from English — see below.
(b) "X time ago" — with a past-tense verb
When the action is finished and you are locating it in the past, you use a past-tense main verb plus há + duration. Now há means "ago."
Há três anos eu fui ao Rio pela primeira vez.
Three years ago I went to Rio for the first time.
Ela se formou há dois meses.
She graduated two months ago.
Comprei este carro há cinco anos.
I bought this car five years ago.
Same word há, opposite temporal direction. The clue is entirely in the main verb: present verb → "for [duration] up to now"; past verb → "[duration] ago."
The "há ... que" frame
For duration, Portuguese also offers the emphatic frame há + duration + que + present verb, which fronts the time span:
Há três anos que moro aqui.
It's been three years that I've lived here. / I've lived here for three years.
Faz tempo que a gente não se vê.
It's been a while since we last saw each other.
That second example shows the everyday alternative: in speech, Brazilians very often replace temporal há with faz (from fazer): faz três anos que moro aqui, comprei faz cinco anos. Faz is the colloquial workhorse; há is the more formal/written choice. Both are correct.
How this differs from English
Two clean contrasts to lock in:
Duration uses the present, not the perfect. English says "I have lived here for three years" (present perfect). Portuguese says moro aqui há três anos — present tense, because the living is still happening. Do not reach for tenho morado here; the Portuguese present perfect (tenho morado) means something different (recent repeated/ongoing action), and it does not pair with há
- total duration in the English "for three years" sense.
"Ago" is a verb, not a postposition. English tacks "ago" onto the end of a noun phrase ("three years ago"). Portuguese puts há (or faz) in front: há três anos. There is no word that means "ago" by itself.
❌ Três anos atrás eu fui ao Rio... atrás está certo mas evite duplicar.
Note: 'três anos atrás' also exists and is correct; just don't combine it with 'há' (no 'há três anos atrás').
A quick word on atrás: três anos atrás ("three years back/ago") is a perfectly correct, common alternative to há três anos. What you must not do is stack them: há três anos atrás is a redundancy that careful writers avoid.
Common Mistakes
❌ Eu tenho morado aqui há três anos.
Incorrect — duration up to now uses the simple present, not the present perfect: 'moro'.
✅ Moro aqui há três anos.
I've lived here for three years.
❌ Eu fui ao Rio três anos atrás há.
Incorrect word placement and redundancy; use either 'há três anos' or 'três anos atrás', not both.
✅ Fui ao Rio há três anos. / Fui ao Rio três anos atrás.
I went to Rio three years ago.
❌ Hão muitos problemas na cidade.
Incorrect — existential 'haver' is invariable; it stays 'há' even with a plural.
✅ Há muitos problemas na cidade.
There are many problems in the city.
❌ Havia um acidente grave ontem à noite.
Questionable — for a one-time event that occurred, the preterite 'houve' is more precise than the imperfect.
✅ Houve um acidente grave ontem à noite.
There was a serious accident last night.
❌ Há três anos atrás eu morava no Rio.
Incorrect — don't combine 'há' with 'atrás'.
✅ Há três anos eu morava no Rio. / Três anos atrás eu morava no Rio.
Three years ago I was living in Rio.
Key Takeaways
- Haver survives mainly as há (present), havia (past state), and houve (past event), all invariable and subjectless.
- Há = formal "there is/are" (conversation uses tem); havia = formal "there was/were" as a backdrop; houve = "there was/were" as an event that occurred.
- In time expressions, present verb + há = "for [duration] up to now"; past verb + há = "[duration] ago." Same word, opposite directions.
- Duration uses the simple present (moro... há três anos), not the present perfect — a key divergence from English.
- Colloquial speech often swaps há for faz; never combine há with atrás.
Now practice Portuguese
Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.
Start learning Portuguese→Related Topics
- Ter and Haver: OverviewA1 — How Brazilian Portuguese splits possession, existence, and compound-tense duties between ter and haver — and why ter wins almost everywhere.
- Ter for 'There Is/Are' (Existential)A1 — How Brazilians use tem as the everyday 'there is/are', replacing formal há across all tenses.
- Houve for Past Events ('There Was')B1 — How 'houve' expresses past existence and events — and why most Brazilians say 'teve' or 'aconteceu' instead in everyday speech.
- Há vs Existe vs Tem: There is/areA2 — The three ways to say 'there is/are' in Brazilian Portuguese — spoken invariable tem, formal invariable há, and agreeing existe(m) — plus há for elapsed time.
- HaverA2 — Usage reference for 'haver' — a highly irregular and, in modern Brazilian Portuguese, mostly defective verb that survives in a handful of frozen forms: há, havia, houve, houver, haja.
- 'Há' / 'Faz' Constructions for Time DurationA2 — How Brazilian Portuguese expresses 'for X amount of time' using 'há' or 'faz' with the present tense — and why the verb is never the compound perfect.