You can use
%left '+'
to tell YACC how to resolve the shift reduce conflict. That's the best way to do it.
You can make the grammar unambiguous by making a different term
expression = lower_expression + expression ;
That method gets tedious when there are a lot of operators and different levels of precedence.