I thought there was almost no difference, but to be exact, there is.

In kanji, it may be easier to understand the gap.

a fighting man or a serving man

bushi: 武士
武 (bu) means ” a fighter with a weapon “
 
士 (shi) means ” a man “
 
So in a strict sence, bushi means ” a fighting man with a weapon “
 
samurai: 侍
侍 means “one who serves.” Samurai served to a noble or a imperial family.
 
People (including Japanese) tend to call a man with katana swords ” samurai”.

 
But it would be more accurate if we call him ” bushi “.
 
Even japanese people are not aware of these difinitions, so nobody points out which word you should use.

Schoolbullying in Japan
“Nice to meet you” in Japanese
親指を立てる女の子
richigi(na)律義(な)in English
What is the difference between owan, chawan and yunomi?
Motoko
GHOST IN THE SHELL S.A.C. Solid State Society
Do you soak or not? when you serve handdrip coffee
My tip not to catch a cold ( a famous Jpn writer also did this )
I need to know if my guide was OK for a woman from Australia