In English I could say "she had a sad expression (on her face)". Can I say "elle a eu une expression malheureuse sur son visage"?
It's typically the sort of thing you can't translate literally. You will probably get several proposals that can all be good.
As far as I'm concerned I find that French focuses more on the part of the body (here the face) and the person themselves stays behind the face. This implies the use of a different verb, not avoir
Son visage reflétait/exprimait la tristesse.
L'expression de son visage reflétait la tristesse.
In those sentences I've used a noun (tristesse) in place of an adjective (triste). You could still use an adjective with:
Son visage (l'expression sur son visage) était triste.
If you still want to keep the person up front I suggest something like:
Elle avait l'air triste.
Which is the literal translation for "She looked sad".
1- "Sad" is triste in French. Malheureux means either "unfortunate" when used for things or "miserable" when used for people.
2- Without further context of a chain of events we would not use the passé composé but the imparfait in that sentence. It is a mere description of an uncompleted action/state.