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.

Shinkansen remarkable speed and punctuality
My tip not to catch a cold ( a famous Jpn writer also did this )
cooking couple
Conversation without ” you ” is possible in Japanese
” Thank you ” in Japanese. My recommendation is…
What is the difference between owan, chawan and yunomi?
“Nice to meet you” in Japanese
Difinitions of shogun
greetings
kon’nichiwa is not common among friends. Do you know a rule?