hablar vs decir
Hablar is talking (the activity). Decir is saying or telling (the content of what's communicated).
hablar
To speak or talk — the act of using language, not the content.
Habla demasiado.
He talks too much.
The activity of talking — not what he says.
¿Hablas español?
Do you speak Spanish?
Ability to use a language. Always hablar. Never decir español.
Hay que hablar de esto.
We need to talk about this.
Hablar de = to talk about something. The conversation itself.
decir
To say or tell — focusing on the content, the words, the message.
¿Qué dices?
What are you saying? / What do you mean?
The content of speech. Also used as 'what?' when you didn't catch something.
Te lo dije.
I told you so.
Decir = to tell. Very common. Hablé would mean I spoke — not that I conveyed a specific thing.
Es decir...
That is to say... / In other words...
Fixed phrase — one of the most useful discourse markers in Spanish.
Tricky bit
'Dime' = tell me (the content). 'Háblame' = talk to me (the act, the connection). 'Me dijo que vendría' = he told me he'd come (content). 'Habló conmigo' = he talked with me (the conversation happened).'